How you configure your Auth0 tenant architecture affects your B2B IAM implementation.
Understanding your application is key to understanding how Auth0 can be leveraged to meet your needs. From experience, our most successful customers start with a visualization of their proposed - or in many cases existing - architecture and use this as a basis for reference as they progress. Understanding where your application fits within your organization is also important; Auth0 Accounts and Tenants form the basis for the grouping and structuring of Auth0 assets, and it may be that you’ll need to leverage an existing Auth0 deployment in order to integrate with Single Sign-on (SSO), centralized user Profile Management, consolidated billing, or the like.
If you do have multiple applications, and you need to leverage SSO, then we recommend you check out our How to Implement Single Sign-On training guidance before continuing.
The value of investing time on the landscape of the architecture up-front is something that we have found pays dividends in the long run, and there are a number of things you will want to consider when looking at functionality and workflow:
What should the URL look like when Auth0 needs to present a web page to a user?
How can Auth0 be structured to support your SDLC (Software Development Lifecycle)?
How can you ensure that your Auth0 tenants are appropriately associated with your contract?
What do you need to consider if there are other projects in your organization integrating with Auth0? Particularly projects that target their own, or a different domain of users (for example, applications that only employees will use)?
How can you align the structure and domain of your customers’ organization with your Auth0 deployment?
Organizations often service more than one domain of user - customers, employees, and affiliates being the most frequently encountered, with typically little to no cross-over: employees, say, don’t use the same applications as customers and vice-versa. In some cases there can also be a need to partition further within a domain - separate groups of customers, say, who use different and unconnected products. Auth0 provides a way to segregate your users and the associated collateral, and tenant provision covers this in more detail. If you need to provision an independent tenant then you’ll also want to associate this with your existing Auth0 account, so that you can take full advantage of the benefits provided at your organization’s contracted subscription level.
It’s not uncommon for companies to have identity requirements that address multiple user communities: customers, partners, employees, etc. So be sure to consider other projects or future requirements when designing your architecture.
In addition, you’ll undoubtedly have an established set of processes and procedures as part of your Software Development Lifecycle (SDLC). So you’ll want to check out our SDLC support guidance regarding Auth0 Tenant provision in support of that too.For customer-facing applications, we typically see OpenID Connect (OIDC) as being the most frequently used protocol. OIDC makes use of web based workflows with browser URLs that are presented to the user. Out-of-the-box, client facing URLs as part of Auth0 OIDC support are Auth0 branded, however we recommend using the Auth0 custom domain capability to provide for consistent corporate identity and to also address potential user confidence concerns before they arise.
Other groups within your organization may also be working with Auth0; it’s not uncommon for our customers to have disparate departments that serve different user communities. Identifying these will potentially influence your design choices, and doing so early could mitigate decisions that might prove costly later on.
If some or all of your customer organizations each need their own custom URL or they are using social providers that need a custom consent page branded to the organization, then we recommend that you create separate Auth0 tenants for those organizations; see Tenant provision for complex organizations for further details.
Everything starts with an Auth0 tenant. This is where you will be configuring your use of Auth0, and the where Auth0 assets - such as Applications, Connections and user profiles are defined, managed and stored. Access to an Auth0 tenant is performed via the Auth0 Dashboard, and via the Dashboard you can also create additional, associated tenants; you’re allowed to create more than one Auth0 tenant so that you can structure your tenants in a way that will isolate different domains of users and also support your Software Development Life Cycle (SDLC).
Tenant names cannot be changed, nor reused once deleted. So, make sure you’re happy with your name(s) before you create your Auth0 tenants.
Determining the level of isolation you require when it comes to your user domains is an important step, and together with your branding requirements will subsequently help you determine the number of Auth0 tenants that will be required in your production environment. As we recommend you create a full suite of SDLC supporting tenants for every Auth0 tenant you will run in a production environment, the number of Auth0 tenants you will need to manage can quickly grow. Therefore you should consider carefully before creating multiple Auth0 tenants for production, and should consult our guidance on Branding before making your final decision.
In most cases, provisioning separate Auth0 tenants for your customer’s organizations is not necessary. This has become even easier with the release of our new Organizations feature. However, in certain circumstances this can be something that is valuable for reducing the complexity of your setup. For instance, we recommend provisioning a separate Auth0 tenant for your customers’ organization as a best practice if:
Your customer organizations need a custom login URL that is unique to the organization. This is generally the case only if you allow your organizations to have their own vanity URL instead of using a common login URL. Auth0 supports one per tenant.
Your customer organizations use social providers for login. In this case, it is often desirable for the organization to have a custom consent page for the social provider that is branded to their organization.
If either of these situations is true, we recommend creating a separate Auth0 tenant for each organization that has one of the above criteria.
Maintaining multiple Auth0 tenants can add complexity to your system and should not be done unless absolutely necessary.
To ensure that your tenants are all associated with your Auth0 contractual agreement and have the same features, ensure all your tenants are associated with your company account. If you have individual developers that want to create their own sandboxes for testing, make sure they get associated with your account so they have the same permissions too. To do this you should contact your Auth0 representative or the Auth0 Support Center.
When you setup your Auth0 tenant, the URL for accessing that tenant will be of the form https://{yourTenant}.auth0.com. Providing a Custom Domain (also known as a vanity URL), for your Auth0 tenant is not only an important factor for supporting your Branding requirements, but more importantly will also provide you with security benefits too:
It’s harder to phish your domain if you have a vanity URL, as the phisher must also create a vanity URL to mimic yours. For example, with a custom domain you can use your own certificate to get an “Extended Validation”, making phishing even harder.
You are allowed only one custom domain per Auth0 tenant. This is because a tenant in Auth0 is intended to represent a “domain” of users. If you need more than one vanity URL, then you likely have more than one domain of users and should be using multiple tenants.
Your custom domain name should also give the user confidence that this is the appropriate place to enter their credentials, and we recommend that you create your custom domain in all environments early on to ensure that you are testing consistently between environments. It’s extremely important to train your users to to look for suspicious URLs when entering their credentials!
Create a custom domain (a.k.a. CNAME) for your Auth0 tenant, and also create one in development too so you can ensure you have managed the CNAME correctly. For example, you could create a CNAME which maps login.mycompany.com to mycompany-prod.auth0.com.
In almost all cases, customers have been most successful when adopting a strategy of a centralised domain for authentication across multiple product or service brands. This strategy provides users with a consistent UX, and also mitigates the complexity of deploying and maintaining multiple Auth0 tenants in a production environment. If you are considering having multiple domains for different brands, please refer to the Branding guidance before you begin implementing.
Every company has some form of Software Development Life Cycle (SDLC), and throughout the development process you will want to align with that strategy. For instance, you need to be able to test your integration with Auth0 in a similar fashion as you test the applications themselves. It is therefore important to structure Auth0 tenants to support your SDLC, and there is a consistent pattern which our customers typically follow when it comes to the best practices associated with tenant layout for doing so:
Environment
Sample Tenant Name
Description
Development
company-dev
A shared environment where most of your development work occurs
QA/Testing
company-qa or company-uat
An environment for formal testing of the changes you’ve made
Production
company-prod
The production tenant
In some cases you may also want to create one or more sandboxes (e.g., company-sandbox1, company-sandbox2) so that you can test changes without compromising your development environment. This might be where you test deployment scripts and the like.
You can also take advantage of our Implementation Checklists that you can download and customize to meet your implementation project needs.
Customers with an Enterprise subscription should ensure tenants set up to support their SDLC are properly linked to their subscription. This will ensure each tenant has a consistent set of features enabled.
We provide planning guidance in PDF format that you can download and refer to for details about our recommended strategies.B2B IAM Project Planning Guide
Many B2B platforms implement some form of isolation and/or branding for their customers’ organization, and this can add complexity to any Identity and Access Management (IAM) system. If this applies to you, then we recommend you take some time to read through our guidance and best practice advice for this type of environment.Multiple Organization Architecture
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Auth0 Docs","description":"Auth0 documentation","colors":{"primary":"#9921FE","light":"#BC6DFF","dark":"#343434"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/light.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/dark.svg","href":"https://auth0.com/docs/"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg","api":{"params":{"post":["x-release-lifecycle"]},"playground":{"proxy":false},"url":"full"},"background":{"decoration":"gradient"},"seo":{"metatags":{"canonical":"https://auth0.com","og:image":"docs/images/share-image.png"}},"fonts":{"body":{"family":"Inter","source":"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900\u0026display=swap","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"adobe":{"launchUrl":"https://assets.adobedtm.com/6bb3f7663515/7006851c9849/launch-af624fe9e34f.min.js"},"gtm":{"tagId":"GTM-W7FRLJ"},"heap":{"appId":"1279799279"},"onetrust":{"domainScript":"96e22fd8-d619-4cdd-a3c6-d51529d21faf","categoryId":"C0002","scriptSource":"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Developers","items":[{"label":"Developer Hub","href":"https://developer.auth0.com"},{"label":"Code Samples \u0026 Guides","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"Blog","href":"https://auth0.com/blog"},{"label":"Changelog","href":"https://auth0.com/changelog"}]},{"header":"Docs","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Quickstarts","href":"https://auth0.com/docs/quickstarts"},{"label":"APIs","href":"https://auth0.com/docs/api"},{"label":"SDK Libraries","href":"https://auth0.com/docs/libraries"},{"label":"Learn","href":"https://auth0.com/learn"},{"label":"Intro to IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Reports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinars","href":"https://auth0.com/resources/webinars"}]},{"header":"Support Center","items":[{"label":"Community","href":"https://community.auth0.com"},{"label":"Help","href":"https://support.auth0.com"},{"label":"FAQs","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Company","items":[{"label":"Our Customers","href":"https://auth0.com/customers"},{"label":"Compliance","href":"https://auth0.com/security"},{"label":"Partners","href":"https://auth0.com/partners"},{"label":"Careers","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"About us","href":"https://auth0.com/about"}]}]},"href":"docs/get-started"},{"language":"fr-ca","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Développeurs","items":[{"label":"Espace développeurs","href":"https://developer.auth0.com"},{"label":"Exemples de code et guides","href":"https://developer.auth0.com/resources"},{"label":"Infolettre Zero Index","href":"https://auth0.com/blog/newsletter"},{"label":"Blogue","href":"https://auth0.com/blog"},{"label":"Journal des modifications","href":"https://auth0.com/changelog"}]},{"header":"Documentation","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Guides de démarrage rapide","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"Bibliothèques SDK","href":"https://auth0.com/docs/libraries"},{"label":"Apprendre","href":"https://auth0.com/learn"},{"label":"Introduction à l’IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Rapports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinaires","href":"https://auth0.com/resources/webinars"}]},{"header":"Centre d’assistance","items":[{"label":"Communauté","href":"https://community.auth0.com"},{"label":"Aide","href":"https://support.auth0.com"},{"label":"Foire aux questions","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Entreprise","items":[{"label":"Nos clients","href":"https://auth0.com/customers"},{"label":"Conformité","href":"https://auth0.com/security"},{"label":"Partenaires","href":"https://auth0.com/partners"},{"label":"Carrières","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"À propos de nous","href":"https://auth0.com/about"}]}]},"href":"docs/fr-ca/get-started"},{"language":"ja-jp","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"開発者向け","items":[{"label":"開発者ハブ","href":"https://developer.auth0.com"},{"label":"コードサンプルとガイド","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"ブログ","href":"https://auth0.com/blog"},{"label":"変更履歴","href":"https://auth0.com/changelog"}]},{"header":"ドキュメント","items":[{"label":"ドキュメント","href":"https://auth0.com/docs"},{"label":"クイックスタート","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"SDKライブラリ","href":"https://auth0.com/docs/libraries"},{"label":"教育","href":"https://auth0.com/learn"},{"label":"IAM(CIAM)入門","href":"https://auth0.com/intro-to-iam"},{"label":"レポート","href":"https://auth0.com/resources/whitepapers"},{"label":"ウェビナー","href":"https://auth0.com/resources/webinars"}]},{"header":"サポートセンター","items":[{"label":"コミュニティ","href":"https://community.auth0.com"},{"label":"ヘルプ","href":"https://support.auth0.com"},{"label":"よくある質問","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"会社情報","items":[{"label":"導入企業","href":"https://auth0.com/customers"},{"label":"コンプライアンス","href":"https://auth0.com/security"},{"label":"パートナー","href":"https://auth0.com/partners"},{"label":"採用情報","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"私たちについて","href":"https://auth0.com/about"}]}]},"href":"docs/ja-jp/get-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"auth0","hasAudioNarration":false,"actualSubdomain":"auth0","customDomains":["auth0.com","auth0.auth0-mintlify.app"],"gitSource":{"type":"github","owner":"atko-cic","repo":"docs","deployBranch":"main","contentDirectory":"main","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"contextualFeedback":{"textInputOnly":true,"allowEmail":false},"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af626113e877a418253f0cc","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"en","tag":"Dev Tools","count":846},{"language":"fr-ca","tag":"Outils de développement","count":846},{"language":"ja-jp","tag":"開発者ツール","count":846},{"language":"en","tag":"APIs","count":622},{"language":"fr-ca","tag":"API","count":622},{"language":"ja-jp","tag":"API","count":622},{"language":"en","tag":"Management API","count":490},{"language":"fr-ca","tag":"API Management","count":490},{"language":"ja-jp","tag":"Management API","count":490},{"language":"en","tag":"Get Started","count":289},{"language":"ja-jp","tag":"はじめに","count":289},{"language":"fr-ca","tag":"Pour commencer","count":279},{"language":"ja-jp","tag":"リファレンス","count":253},{"language":"en","tag":"Reference","count":252},{"language":"fr-ca","tag":"Référence","count":252},{"language":"en","tag":"Extend","count":216},{"language":"fr-ca","tag":"Étendre","count":216},{"language":"ja-jp","tag":"拡張","count":216},{"language":"en","tag":"SDKs","count":209},{"language":"fr-ca","tag":"SDK","count":209},{"language":"ja-jp","tag":"SDK","count":209},{"language":"en","tag":"Monitor","count":194},{"language":"fr-ca","tag":"Surveiller","count":194},{"language":"ja-jp","tag":"監視","count":194},{"language":"en","tag":"Authenticate","count":186},{"language":"fr-ca","tag":"Authentifier","count":186},{"language":"ja-jp","tag":"認証","count":186},{"language":"en","tag":"Tenant Log Event Types","count":171},{"language":"fr-ca","tag":"Types d’événements du journal du locataire","count":171},{"language":"ja-jp","tag":"テナントのログイベントの種類","count":171}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":false,"type":"link"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"ui/css/recipe.css","content":"#content-area:has(.recipe-container){overflow:visible!important}.recipe-content .recipe-section:first-of-type{margin-top:1rem}.active-section{opacity:1!important}"},{"filePath":"ui/css/styles.css","content":"@font-face{font-family:\"Inter Fallback\";src:local(\"Arial\");size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}body{font-feature-settings:\"kern\", \"liga\", \"clig\", \"calt\", \"rvrn\";font-family:\"Inter\",\n \"Inter Fallback\",\n system-ui,\n -apple-system,\n sans-serif}.mdx-content{line-height:1.625}#page-title{font-size:var(--text-3xl);line-height:1.15}.mdx-content .link{font-weight:inherit;border:none;text-decoration:underline;text-underline-offset:2px;transition:opacity 0.15s ease-out;color:rgb(var(--primary));\u0026.quickstart_button{text-decoration:none}}.mdx-content .link:hover{color:rgb(var(--tw-prose-links))}.dark .mdx-content .link:hover{color:rgb(var(--primary))}.mdx-content table{border-radius:12px;border:0px;box-shadow:0 0 0 1px rgb(from var(--border-muted) r g b / 50%);overflow:hidden;thead {\n background-color: rgb(from var(--border-muted) r g b / 30%);\n }\n\n th, td {\n padding: 0.5rem;\n }\n\n /* Don't break mid-word in code formatting. */\n code {\n white-space: pre;\n }}img.icon.inline{margin:0}#navbar{padding-bottom:0.5rem;box-shadow:0 0 0 1px oklch(from var(--border) l c h / 0.1),\n 0 1px 1px -1px oklch(from var(--shadow) l c h / 0.06),\n 0 2px 2px -2px oklch(from var(--shadow) l c h / 0.06),\n 0 2px 4px -2px oklch(from var(--shadow) l c h / 0.06);> div:nth-child(2) {\n -webkit-backdrop-filter: blur(20px);\n backdrop-filter: blur(20px);\n transition:\n background-color 0.2s ease,\n backdrop-filter 0.2s ease;\n }\n\n /* This data attribute is set by the navbar controller */\n \u0026[data-is-opaque=\"true\"] > div:nth-child(2) {\n background-color: oklch(from var(--bg) l c h / 1);\n }}body:has([data-uc-component] [data-slot=\"dialog-content\"]) #navbar>div:first-child{border-bottom-color:transparent}body[data-scroll-locked]:has([data-uc-component] [data-slot=\"dialog-content\"]){margin-right:0!important}#adu-root{transition:opacity 0.2s ease,\n visibility 0s linear 0s}body:has([data-uc-component] [data-slot=\"dialog-content\"]) #adu-root{opacity:0;visibility:hidden;transition:opacity 0.2s ease,\n visibility 0s linear 0.2s}.nav-tabs{column-gap:0}.nav-tabs-item{padding:0.25rem 0.75rem;text-shadow:none;div.bottom-0 {\n display: none;\n }}.nav-tabs-item[data-active]{color:rgb(var(--primary))}.dark .nav-tabs-item[data-active]{color:rgb(var(--primary-light))}.nav-tabs-item:hover{color:rgb(var(--primary));background-color:rgb(var(--primary) / .1);transition:all 0.15s ease-out;border-radius:0.75rem}#sidebar-content{border-color:transparent}#sidebar-content{a,\n button {\n text-shadow: none;\n }}.card{transition:all 0.15s ease}.libraries_card{border:1px solid var(--border-muted);\u0026:hover{border-color:var(--border)}img {\n margin: 0;\n }\n\n .libraries_card_divider {\n border-top: 1px solid var(--border-muted);\n margin: 0 1rem;\n }}.api_card_wrapper .card{background-color:transparent;color:var(--foreground-card);[data-component-part=\"card-title\"],\n #card-link-arrow-icon {\n transition: all .15s ease-out;\n color: currentColor;\n }\n\n /* Accent on hover */\n \u0026:hover {\n color: var(--foreground-selected);\n }\n\n /* Use only bottom border */\n border: 0;border-radius:0;border-bottom:3px solid currentColor!important;margin-bottom:1rem;[data-component-part=\"card-content-container\"] {\n padding: 1.25rem 0 0.5rem;\n }\n\n /* Right-align the absolute positioning for the icon */\n #card-link-arrow-icon {\n right: 0;\n }}[data-component-part=\"field-meta-post\"]{background-color:lab(91.896% .077188 -6.94053);color:lab(36.091% 25.9241 -68.0384)}.dark [data-component-part=\"field-meta-post\"]{background-color:lab(16.0426% 6.71726 -27.2409);color:lab(72.6029% 4.08953 -41.9669)}body:has([data-uc-component] [data-slot=\"dialog-overlay\"]) [data-assistant-bar]{visibility:hidden}"},{"filePath":"ui/css/apiExplorer.css","content":"#header{.prose {\n p {\n font-size: 0.875rem;\n }\n }\n\n /* Code block styling — light mode */\n \u0026 pre {\n background-color: #f6f8fa !important;\n border: 1px solid #d0d7de;\n border-radius: 1rem;\n }\n\n \u0026 pre code {\n font-size: 0.75rem;\n background-color: transparent !important;\n }\n\n \u0026 code:not(pre > code) {\n font-size: 0.75rem;\n background-color: #f0f2f4;\n border: 1px solid #d0d7de;\n border-radius: 0.375rem;\n }\n\n /* docs/api/management/v2/clients/update-a-client\n docs/api/management/v2/clients/create-a-client\n docs/api/management/v2/logs/search-log-events */\n \u0026 li {\n font-size: 0.75rem;\n }\n\n \u0026 li::before {\n top: 0.75rem;\n }\n\n /* Code block styling — dark mode */\n /* :is(html.dark) \u0026 pre compiles to: html.dark #header pre */\n :is(html.dark, html[data-appearance=\"dark\"], html[data-theme=\"dark\"]) \u0026 pre {\n background-color: #13141a !important;\n border-color: #2d2f3e !important;\n }\n\n :is(html.dark, html[data-appearance=\"dark\"], html[data-theme=\"dark\"])\n \u0026\n pre\n code {\n background-color: transparent !important;\n }\n\n :is(html.dark, html[data-appearance=\"dark\"], html[data-theme=\"dark\"])\n \u0026\n code:not(pre > code) {\n background-color: #1e1f2b !important;\n border-color: #2d2f3e !important;\n }}.primitive-param-field{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}.array-param-field{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}.object-param-field{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}.api-section-heading-subtitle{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}svg[style*=\"/zsh.svg\"]{-webkit-mask-image:url(\"/docs/images/auth0-cli.svg\")!important;mask-image:url(\"/docs/images/auth0-cli.svg\")!important}"},{"filePath":"ui/auth0-docs-ui-1.10.0.css","content":"@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--adu-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--adu-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--adu-color-blue-500:oklch(62.3% .214 259.815);--adu-color-white:#fff;--adu-spacing:.25rem;--adu-text-xs--line-height:calc(1/.75);--adu-text-sm--line-height:calc(1.25/.875);--adu-text-base--line-height: 1.5 ;--adu-text-lg--line-height:calc(1.75/1.125);--adu-text-xl--line-height:calc(1.75/1.25);--adu-text-2xl--line-height:calc(2/1.5);--adu-text-3xl--line-height: 1.2 ;--adu-tracking-widest:.1em;--adu-ease-in-out:cubic-bezier(.4,0,.2,1);--adu-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1) infinite;--adu-default-transition-duration:.15s;--adu-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--adu-default-font-family:var(--adu-font-sans);--adu-default-mono-font-family:var(--adu-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--adu-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--adu-default-font-feature-settings,normal);font-variation-settings:var(--adu-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--adu-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--adu-default-mono-font-feature-settings,normal);font-variation-settings:var(--adu-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border);outline-color:var(--color-ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in srgb,var(--color-ring) 50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:style;font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\",\"rvrn\"}}@layer components;@layer utilities{.adu\\:\\@container\\/card-header{container:card-header/inline-size}.adu\\:pointer-events-none{pointer-events:none}.adu\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.adu\\:absolute{position:absolute}.adu\\:fixed{position:fixed}.adu\\:relative{position:relative}.adu\\:static{position:static}.adu\\:top-0{top:calc(var(--adu-spacing)*0)}.adu\\:right-0{right:calc(var(--adu-spacing)*0)}.adu\\:left-0{left:calc(var(--adu-spacing)*0)}.adu\\:left-2{left:calc(var(--adu-spacing)*2)}.adu\\:left-73{left:calc(var(--adu-spacing)*73)}.adu\\:z-0{z-index:0}.adu\\:z-30{z-index:30}.adu\\:z-50{z-index:50}.adu\\:z-\\[39\\]{z-index:39}.adu\\:col-start-2{grid-column-start:2}.adu\\:row-span-2{grid-row:span 2/span 2}.adu\\:row-start-1{grid-row-start:1}.adu\\:-mx-1{margin-inline:calc(var(--adu-spacing)*-1)}.adu\\:my-1{margin-block:calc(var(--adu-spacing)*1)}.adu\\:mr-2{margin-right:calc(var(--adu-spacing)*2)}.adu\\:-ml-8{margin-left:calc(var(--adu-spacing)*-8)}.adu\\:ml-2{margin-left:calc(var(--adu-spacing)*2)}.adu\\:ml-auto{margin-left:auto}.adu\\:flex{display:flex}.adu\\:grid{display:grid}.adu\\:hidden{display:none}.adu\\:inline-block{display:inline-block}.adu\\:inline-flex{display:inline-flex}.adu\\:aspect-square{aspect-ratio:1}.adu\\:size-2{width:calc(var(--adu-spacing)*2);height:calc(var(--adu-spacing)*2)}.adu\\:size-3\\.5{width:calc(var(--adu-spacing)*3.5);height:calc(var(--adu-spacing)*3.5)}.adu\\:size-4{width:calc(var(--adu-spacing)*4);height:calc(var(--adu-spacing)*4)}.adu\\:size-8{width:calc(var(--adu-spacing)*8);height:calc(var(--adu-spacing)*8)}.adu\\:size-9{width:calc(var(--adu-spacing)*9);height:calc(var(--adu-spacing)*9)}.adu\\:size-full{width:100%;height:100%}.adu\\:h-4{height:calc(var(--adu-spacing)*4)}.adu\\:h-8{height:calc(var(--adu-spacing)*8)}.adu\\:h-9{height:calc(var(--adu-spacing)*9)}.adu\\:h-10{height:calc(var(--adu-spacing)*10)}.adu\\:h-14{height:calc(var(--adu-spacing)*14)}.adu\\:h-\\[18px\\]{height:18px}.adu\\:h-px{height:1px}.adu\\:max-h-\\(--radix-dropdown-menu-content-available-height\\){max-height:var(--radix-dropdown-menu-content-available-height)}.adu\\:max-h-72\\.5{max-height:calc(var(--adu-spacing)*72.5)}.adu\\:max-h-\\[calc\\(100\\%\\+2px\\)\\]{max-height:calc(100% + 2px)}.adu\\:w-4{width:calc(var(--adu-spacing)*4)}.adu\\:w-8{width:calc(var(--adu-spacing)*8)}.adu\\:w-9{width:calc(var(--adu-spacing)*9)}.adu\\:w-48{width:calc(var(--adu-spacing)*48)}.adu\\:w-73{width:calc(var(--adu-spacing)*73)}.adu\\:w-\\[24px\\]{width:24px}.adu\\:w-full{width:100%}.adu\\:min-w-\\[8rem\\]{min-width:8rem}.adu\\:flex-1{flex:1}.adu\\:shrink-0{flex-shrink:0}.adu\\:origin-\\(--radix-dropdown-menu-content-transform-origin\\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.adu\\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:animate-out{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:animate-pulse{animation:var(--adu-animate-pulse)}.adu\\:cursor-default{cursor:default}.adu\\:auto-rows-min{grid-auto-rows:min-content}.adu\\:grid-rows-\\[auto_auto\\]{grid-template-rows:auto auto}.adu\\:flex-col{flex-direction:column}.adu\\:flex-wrap{flex-wrap:wrap}.adu\\:items-center{align-items:center}.adu\\:items-start{align-items:flex-start}.adu\\:justify-center{justify-content:center}.adu\\:gap-0{gap:calc(var(--adu-spacing)*0)}.adu\\:gap-1{gap:calc(var(--adu-spacing)*1)}.adu\\:gap-1\\.5{gap:calc(var(--adu-spacing)*1.5)}.adu\\:gap-2{gap:calc(var(--adu-spacing)*2)}.adu\\:gap-3{gap:calc(var(--adu-spacing)*3)}.adu\\:gap-4{gap:calc(var(--adu-spacing)*4)}.adu\\:gap-6{gap:calc(var(--adu-spacing)*6)}.adu\\:gap-8{gap:calc(var(--adu-spacing)*8)}.adu\\:self-start{align-self:flex-start}.adu\\:self-stretch{align-self:stretch}.adu\\:justify-self-end{justify-self:flex-end}.adu\\:overflow-auto{overflow:auto}.adu\\:overflow-hidden{overflow:hidden}.adu\\:overflow-x-hidden{overflow-x:hidden}.adu\\:overflow-y-auto{overflow-y:auto}.adu\\:rounded{border-radius:.25rem}.adu\\:rounded-full{border-radius:9999px}.adu\\:rounded-md{border-radius:.5rem}.adu\\:rounded-none{border-radius:0}.adu\\:rounded-sm{border-radius:.375rem}.adu\\:rounded-xl{border-radius:.875rem}.adu\\:border{border-style:var(--tw-border-style);border-width:1px}.adu\\:border\\!{border-style:var(--tw-border-style)!important;border-width:1px!important}.adu\\:border-border-input{border-color:var(--border-input)}.adu\\:border-border-muted{border-color:var(--border-muted)}.adu\\:bg-\\[\\#232220\\]{background-color:#232220}.adu\\:bg-blue-500{background-color:var(--adu-color-blue-500)}.adu\\:bg-border-input{background-color:var(--border-input)}.adu\\:bg-button-primary{background-color:var(--button-primary)}.adu\\:bg-card{background-color:var(--card)}.adu\\:bg-destructive{background-color:var(--destructive)}.adu\\:bg-input{background-color:var(--input)}.adu\\:bg-page{background-color:var(--page)}.adu\\:bg-popover{background-color:var(--popover)}.adu\\:bg-surface-muted{background-color:var(--surface-muted)}.adu\\:bg-surface-selected{background-color:var(--surface-selected)}.adu\\:fill-current{fill:currentColor}.adu\\:p-0{padding:calc(var(--adu-spacing)*0)}.adu\\:p-1{padding:calc(var(--adu-spacing)*1)}.adu\\:p-2\\.5{padding:calc(var(--adu-spacing)*2.5)}.adu\\:p-4{padding:calc(var(--adu-spacing)*4)}.adu\\:px-1{padding-inline:calc(var(--adu-spacing)*1)}.adu\\:px-2{padding-inline:calc(var(--adu-spacing)*2)}.adu\\:px-3{padding-inline:calc(var(--adu-spacing)*3)}.adu\\:px-4{padding-inline:calc(var(--adu-spacing)*4)}.adu\\:px-6{padding-inline:calc(var(--adu-spacing)*6)}.adu\\:py-1\\.5{padding-block:calc(var(--adu-spacing)*1.5)}.adu\\:py-2{padding-block:calc(var(--adu-spacing)*2)}.adu\\:py-3{padding-block:calc(var(--adu-spacing)*3)}.adu\\:py-6{padding-block:calc(var(--adu-spacing)*6)}.adu\\:pt-3{padding-top:calc(var(--adu-spacing)*3)}.adu\\:pr-2{padding-right:calc(var(--adu-spacing)*2)}.adu\\:pl-8{padding-left:calc(var(--adu-spacing)*8)}.adu\\:text-center{text-align:center}.adu\\:font-aeonik{font-family:Aeonik,sans-serif}.adu\\:font-inter{font-family:Inter,Inter Fallback,system-ui,-apple-system,sans-serif}.adu\\:font-roboto-mono{font-family:Roboto Mono,sans-serif}.adu\\:text-2xl{font-size:2rem;line-height:var(--tw-leading,var(--adu-text-2xl--line-height))}.adu\\:text-3xl{font-size:2.5rem;line-height:var(--tw-leading,var(--adu-text-3xl--line-height))}.adu\\:text-base{font-size:1rem;line-height:var(--tw-leading,var(--adu-text-base--line-height))}.adu\\:text-lg{font-size:1.25rem;line-height:var(--tw-leading,var(--adu-text-lg--line-height))}.adu\\:text-sm{font-size:.875rem;line-height:var(--tw-leading,var(--adu-text-sm--line-height))}.adu\\:text-sm\\!{font-size:.875rem!important;line-height:var(--tw-leading,var(--adu-text-sm--line-height))!important}.adu\\:text-xl{font-size:1.5rem;line-height:var(--tw-leading,var(--adu-text-xl--line-height))}.adu\\:text-xs{font-size:.75rem;line-height:var(--tw-leading,var(--adu-text-xs--line-height))}.adu\\:leading-1\\.5{--tw-leading:calc(var(--adu-spacing)*1.5);line-height:calc(var(--adu-spacing)*1.5)}.adu\\:leading-1\\.15{--tw-leading:1.15;line-height:1.15}.adu\\:leading-1\\.20{--tw-leading:1.2;line-height:1.2}.adu\\:leading-1\\.25{--tw-leading:1.25;line-height:1.25}.adu\\:leading-1\\.30{--tw-leading:1.3;line-height:1.3}.adu\\:leading-1\\.33{--tw-leading:1.33;line-height:1.33}.adu\\:leading-1\\.40{--tw-leading:1.4;line-height:1.4}.adu\\:leading-1\\.45{--tw-leading:1.45;line-height:1.45}.adu\\:leading-1\\.65{--tw-leading:1.65;line-height:1.65}.adu\\:leading-none{--tw-leading:1;line-height:1}.adu\\:font-medium{--tw-font-weight:500;font-weight:500}.adu\\:font-normal{--tw-font-weight:400;font-weight:400}.adu\\:font-semibold{--tw-font-weight:600;font-weight:600}.adu\\:tracking-n-2xl{--tw-tracking:-.02em;letter-spacing:-.02em}.adu\\:tracking-n-3xl{--tw-tracking:-.02125em;letter-spacing:-.02125em}.adu\\:tracking-n-5xl{--tw-tracking:-.044em;letter-spacing:-.044em}.adu\\:tracking-n-6xl{--tw-tracking:-.05em;letter-spacing:-.05em}.adu\\:tracking-n-lg{--tw-tracking:-.011em;letter-spacing:-.011em}.adu\\:tracking-n-md{--tw-tracking:-.00625em;letter-spacing:-.00625em}.adu\\:tracking-n-sm{--tw-tracking:-.006em;letter-spacing:-.006em}.adu\\:tracking-n-xl{--tw-tracking:-.01125em;letter-spacing:-.01125em}.adu\\:tracking-n-xs{--tw-tracking:-.00525em;letter-spacing:-.00525em}.adu\\:tracking-p-2xl{--tw-tracking:.0375em;letter-spacing:.0375em}.adu\\:tracking-p-lg{--tw-tracking:.011em;letter-spacing:.011em}.adu\\:tracking-p-md{--tw-tracking:.01em;letter-spacing:.01em}.adu\\:tracking-p-sm{--tw-tracking:.005em;letter-spacing:.005em}.adu\\:tracking-p-xs{--tw-tracking:.0025em;letter-spacing:.0025em}.adu\\:tracking-widest{--tw-tracking:var(--adu-tracking-widest);letter-spacing:var(--adu-tracking-widest)}.adu\\:whitespace-nowrap{white-space:nowrap}.adu\\:text-\\[\\#f4f4f4\\]{color:#f4f4f4}.adu\\:text-\\[\\#f4f4f4\\]\\!{color:#f4f4f4!important}.adu\\:text-foreground{color:var(--foreground)}.adu\\:text-foreground-bold{color:var(--foreground-bold)}.adu\\:text-foreground-icon{color:var(--foreground-icon)}.adu\\:text-foreground-inverse{color:var(--foreground-inverse)}.adu\\:text-foreground-inverse\\!{color:var(--foreground-inverse)!important}.adu\\:text-white{color:var(--adu-color-white)}.adu\\:uppercase{text-transform:uppercase}.adu\\:underline{text-decoration-line:underline}.adu\\:underline-offset-4{text-underline-offset:4px}.adu\\:underline-offset-auto{text-underline-offset:auto}.adu\\:shadow-lg{--tw-shadow:0px 12px 12px -6px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-3))),0px 6px 6px -1.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-2))),0px 4px 4px 0px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:shadow-md{--tw-shadow:0px 6px 6px -3px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-2))),0px 4px 4px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:shadow-sm{--tw-shadow:0px 4px 4px -2px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.adu\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.adu\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--adu-default-transition-timing-function));transition-duration:var(--tw-duration,var(--adu-default-transition-duration))}.adu\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--adu-default-transition-timing-function));transition-duration:var(--tw-duration,var(--adu-default-transition-duration))}.adu\\:ease-in-out{--tw-ease:var(--adu-ease-in-out);transition-timing-function:var(--adu-ease-in-out)}.adu\\:fill-mode-both{--tw-animation-fill-mode:both;animation-fill-mode:both}.adu\\:outline-none{--tw-outline-style:none;outline-style:none}.adu\\:select-none{-webkit-user-select:none;user-select:none}.adu\\:fade-in{--tw-enter-opacity:0}.adu\\:fade-out{--tw-exit-opacity:0}.adu\\:slide-in-from-left{--tw-enter-translate-x:-100%}.adu\\:slide-in-from-right{--tw-enter-translate-x:100%}.adu\\:slide-out-to-left{--tw-exit-translate-x:-100%}.adu\\:slide-out-to-right{--tw-exit-translate-x:100%}@media (hover:hover){.adu\\:hover\\:bg-button-primary\\/90:hover{background-color:var(--button-primary)}@supports (color:color-mix(in lab,red,red)){.adu\\:hover\\:bg-button-primary\\/90:hover{background-color:color-mix(in oklab,var(--button-primary) 90%,transparent)}}.adu\\:hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.adu\\:hover\\:underline:hover{text-decoration-line:underline}}.adu\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.adu\\:focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.adu\\:focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.adu\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.adu\\:disabled\\:opacity-50:disabled{opacity:.5}.adu\\:has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.adu\\:has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--adu-spacing)*2.5)}.adu\\:has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--adu-spacing)*3)}.adu\\:has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--adu-spacing)*4)}.adu\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.adu\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.adu\\:data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.adu\\:data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.adu\\:data-\\[inset\\]\\:pl-8[data-inset]{padding-left:calc(var(--adu-spacing)*8)}.adu\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(var(--adu-spacing)*2*-1)}.adu\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(var(--adu-spacing)*2)}.adu\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(var(--adu-spacing)*2*-1)}.adu\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(var(--adu-spacing)*2)}.adu\\:data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.adu\\:data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.adu\\:data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.adu\\:data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.adu\\:data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--destructive)}.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:64rem){.adu\\:lg\\:block{display:block}.adu\\:lg\\:w-auto{width:auto}}.adu\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.adu\\:dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.adu\\:dark\\:shadow-xs:is(.dark *){--tw-shadow:0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.adu\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.adu\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.adu\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.adu\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.adu\\:\\[\\\u0026_svg\\]\\:pointer-events-none svg{pointer-events:none}.adu\\:\\[\\\u0026_svg\\]\\:shrink-0 svg{flex-shrink:0}.adu\\:\\[\\\u0026_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--adu-spacing)*4);height:calc(var(--adu-spacing)*4)}.adu\\:\\[\\.border-b\\]\\:pb-6.border-b{padding-bottom:calc(var(--adu-spacing)*6)}.adu\\:\\[\\.border-t\\]\\:pt-6.border-t{padding-top:calc(var(--adu-spacing)*6)}:is(.adu\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}}@property --tw-animation-delay{syntax:\"*\";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:\"*\";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:\"*\";inherits:false}@property --tw-animation-fill-mode{syntax:\"*\";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:\"*\";inherits:false;initial-value:0}@font-face{font-family:Inter Fallback;src:local(Arial);size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}:root{--page:#fff;--card:#fff;--input:#fff;--destructive:#f3e2de;--popover:#fff;--layer:#fffc;--success:#abdfb9;--info:#b2c5fb;--caution:#ffe573;--warning:#ffbf9f;--button-subtle:#00000008;--surface-muted:#c2c2c2;--surface-selected:#efefef;--button-primary:#191919;--foreground:#767676;--foreground-inverse:#f4f4f4;--foreground-bold:#232220;--foreground-card:#232220;--foreground-destructive:#ba351d;--foreground-popover:#232220;--foreground-selected:#6742d5;--foreground-success:#008140;--foreground-info:#344ac5;--foreground-caution:#907600;--foreground-warning:#c45915;--foreground-icon:#1f1f1f;--border-boldest:#1f1f1f;--border-input:#e6e6e6;--border:#afadaa;--border-muted:#cecdca;--border-success:#008140;--border-info:#344ac5;--border-caution:#907600;--border-warning:#c45915;--code-layer:#f4f4f4;--code-content:#fffc;--code-string-key:#595959;--code-string-value:#149750;--code-boolean:#e27133;--code-delimiter:#afafaf;--code-number:#374ec9;--code-object:#6742d5;--color-shadow:0,0%,0%;--color-shadow-destructive:5,85%,37%;--transparency-level-1:.04;--transparency-level-2:.06;--transparency-level-3:.08;--transparency-level-4:.1;--transparency-level-5:.12;--transparency-level-6:.16;--transparency-level-7:.2;--transparency-level-8:.24;--transparency-level-9:.4}.dark{--page:#191919;--card:#21201f;--input:#0000000d;--destructive:#43140b;--popover:#21201f;--layer:#29272580;--success:#225835;--info:#2f428b;--caution:#433600;--warning:#63361f;--button-subtle:#ffffffe6;--surface-muted:#4a4a4a;--surface-selected:#282828;--button-primary:#fff;--foreground:#7b7b7b;--foreground-inverse:#191919;--foreground-bold:#efede9;--foreground-card:#efede9;--foreground-destructive:#ff9179;--foreground-popover:#efede9;--foreground-selected:#b3a7ff;--foreground-success:#61d287;--foreground-info:#94b2ff;--foreground-caution:#f8d523;--foreground-warning:#ff9f6e;--foreground-icon:#eee;--border-boldest:#eee;--border-input:#282828;--border:#63615e;--border-muted:#3f3d3a;--border-success:#61d287;--border-info:#94b2ff;--border-caution:#f8d523;--border-warning:#ff9f6e;--code-layer:#21201f;--code-content:#1a1918;--code-string-key:#b4b4b4;--code-string-value:#61d287;--code-boolean:#ff9f6e;--code-delimiter:#7b7b7b;--code-number:#94b2ff;--code-object:#b3a7ff;--color-shadow:0,0%,100%;--color-shadow-destructive:5,85%,37%;--transparency-level-1:.04;--transparency-level-2:.06;--transparency-level-3:.08;--transparency-level-4:.1;--transparency-level-5:.12;--transparency-level-6:.16;--transparency-level-7:.2;--transparency-level-8:.24;--transparency-level-9:.4}.adu-dropdown-menu-content,.adu-dropdown-menu-content:before,.adu-dropdown-menu-content:after{border-width:1px;border-color:var(--border-input)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"\u003clength>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}"},{"filePath":"ui/css/ai.css","content":".connection-card-search,.connection-card-filters button{background:var(--card);border-color:var(--foreground);transition:all 0.2s ease}.connection-card-filters button.active{text-decoration:underline dotted;color:rgb(var(--primary));border-color:rgb(var(--primary))}.connection-card-search{\u0026:focus,\u0026:focus-visible,\u0026:focus-within{border-color:rgb(var(--primary))}input {\n \u0026:focus, \u0026:focus-visible, \u0026:focus-within {\n border: none;\n outline: none;\n }\n }}.connection-card-no-results{text-decoration:none!important;cursor:default!important}.download-button-container{display:inline-block;margin-bottom:1rem}.download-button{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1.125rem 0.5rem 1rem;border-radius:0.75rem;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.2s ease;text-decoration:none;color:var(--foreground-inverse);background-color:var(--button-primary);box-shadow:0 0 0 1px oklch(from var(--button-primary) l c h / 0.12),\n 0 1px 1px -1px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 2px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 4px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 4px 6px -4px oklch(from var(--button-primary) l c h / 0.06),\n 0 6px 8px -6px oklch(from var(--button-primary) l c h / 0.06),\n 0 -1px 2px 0 oklch(from var(--button-primary) l c h / 0.2) inset}.download-button:hover:not(:disabled){background-color:oklch(from var(--button-primary) l c h / 0.8);box-shadow:0 0 0 4px oklch(from var(--button-primary) l c h / 0.06),\n 0 1px 1px -1px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 2px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 4px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 4px 6px -4px oklch(from var(--button-primary) l c h / 0.06),\n 0 6px 8px -6px oklch(from var(--button-primary) l c h / 0.06),\n 0 -1px 2px 0 oklch(from var(--button-primary) l c h / 0.2) inset}.download-button:disabled{opacity:0.6;cursor:not-allowed}.download-button.downloading{pointer-events:none}.download-spinner{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}"},{"filePath":"ui/universal-components/universal-components-1.0.27.css","href":"/_mintlify/custom/auth0/73de81e2acf73139/ui/universal-components/universal-components-1.0.27.css"}],"page":{"pagePath":"docs/get-started/architecture-scenarios/business-to-business/architecture","slug":"/docs/get-started/architecture-scenarios/business-to-business/architecture","pageMetadata":{"title":"Business-to-Business Architecture","sidebarTitle":"Architecture","description":"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.","href":"/docs/get-started/architecture-scenarios/business-to-business/architecture"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Callout,Heading,Table,Tip,Tooltip,Warning}=_components;if(!Callout)_missingMdxReference(`Callout`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Understanding your application is key to understanding how Auth0 can be leveraged to meet your needs. From experience, our most successful customers start with a visualization of their proposed - or in many cases existing - architecture and use this as a basis for reference as they progress. Understanding where your application fits within your organization is also important; Auth0\\xA0`,_jsx(_components.a,{href:`/docs/get-started/auth0-overview/create-tenants`,children:`Accounts and Tenants`}),`\\xA0form the basis for the grouping and structuring of Auth0 assets, and it may be that you’ll need to leverage an existing Auth0 deployment in order to integrate with\\xA0`,_jsx(_components.a,{href:`/docs/authenticate/single-sign-on`,children:`Single Sign-on (SSO)`}),`, centralized user\\xA0`,_jsx(_components.a,{href:`/docs/get-started/architecture-scenarios/business-to-business/profile-management`,children:`Profile Management`}),`, consolidated billing, or the like.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`If you do have multiple applications, and you need to leverage SSO, then we recommend you check out our `,_jsx(_components.a,{href:`https://auth0.com/learn/how-to-implement-single-sign-on/`,children:`How to Implement Single Sign-On`}),` training guidance before continuing.`]})}),`\n`,_jsx(_components.p,{children:`The value of investing time on the landscape of the architecture up-front is something that we have found pays dividends in the long run, and there are a number of things you will want to consider when looking at functionality and workflow:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`What should the URL look like when Auth0 needs to present a web page to a user?`}),`\n`,_jsx(_components.li,{children:`How can Auth0 be structured to support your SDLC (Software Development Lifecycle)?`}),`\n`,_jsx(_components.li,{children:`How can you ensure that your Auth0 tenants are appropriately associated with your contract?`}),`\n`,_jsx(_components.li,{children:`What do you need to consider if there are other projects in your organization integrating with Auth0? Particularly projects that target their own, or a different domain of users (for example, applications that only employees will use)?`}),`\n`,_jsx(_components.li,{children:`How can you align the structure and domain of your customers’ organization with your Auth0 deployment?`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Organizations often service more than one domain of user - customers, employees, and affiliates being the most frequently encountered, with typically little to no cross-over: employees, say, don’t use the same applications as customers and vice-versa. In some cases there can also be a need to partition further within a domain - separate groups of customers, say, who use different and unconnected products. Auth0 provides a way to segregate your users and the associated collateral, and\\xA0`,_jsx(_components.a,{href:`#tenant-provision`,children:`tenant provision`}),`\\xA0covers this in more detail. If you need to provision an independent tenant then you’ll also want to\\xA0`,_jsx(_components.a,{href:`#tenant-association`,children:`associate this with your existing Auth0 account`}),`, so that you can take full advantage of the benefits provided at your organization’s contracted subscription level.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`It’s not uncommon for companies to have identity requirements that address multiple user communities: customers, partners, employees, etc. So be sure to consider other projects or future requirements when designing your architecture.`})}),`\n`,_jsxs(_components.p,{children:[`In addition, you’ll undoubtedly have an established set of processes and procedures as part of your Software Development Lifecycle (SDLC). So you’ll want to check out our\\xA0`,_jsx(_components.a,{href:`#sdlc-support`,children:`SDLC support`}),`\\xA0guidance regarding Auth0 Tenant provision in support of that too.`]}),`\n`,_jsxs(_components.p,{children:[`For customer-facing applications, we typically see\\xA0`,_jsx(_components.a,{href:`/docs/authenticate/protocols/openid-connect-protocol`,children:`OpenID Connect (OIDC)`}),`\\xA0as being the most frequently used protocol. OIDC makes use of web based workflows with browser URLs that are presented to the user. Out-of-the-box, client facing URLs as part of Auth0 OIDC support are Auth0 branded, however we recommend using the Auth0\\xA0`,_jsx(_components.a,{href:`#custom-domains`,children:`custom domain`}),`\\xA0capability to provide for consistent corporate identity and to also address potential user confidence concerns before they arise.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Other groups within your organization may also be working with Auth0; it’s not uncommon for our customers to have disparate departments that serve different user communities. Identifying these will potentially influence your design choices, and doing so early could mitigate decisions that might prove costly later on.`})}),`\n`,_jsxs(_components.p,{children:[`If some or all of your customer organizations each need their own custom URL or they are using social providers that need a custom consent page branded to the organization, then we recommend that you create separate Auth0 tenants for those organizations; see\\xA0`,_jsx(_components.a,{href:`#tenant-provision-for-complex-organizations`,children:`Tenant provision for complex organizations`}),`\\xA0for further details.`]}),`\n`,_jsx(Heading,{level:`2`,id:`tenant-provision`,children:`Tenant provision`}),`\n`,_jsxs(_components.p,{children:[`Everything starts with an Auth0 tenant. This is where you will be configuring your use of Auth0, and the where Auth0 assets - such as\\xA0`,_jsx(_components.a,{href:`/docs/get-started/applications`,children:`Applications`}),`,\\xA0`,_jsx(_components.a,{href:`/docs/authenticate/identity-providers`,children:`Connections`}),`\\xA0and\\xA0`,_jsx(_components.a,{href:`/docs/get-started/architecture-scenarios/business-to-business/profile-management`,children:`user profiles`}),`\\xA0are defined, managed and stored. Access to an Auth0 tenant is performed via the Auth0\\xA0`,_jsx(_components.a,{href:`/docs/get-started/auth0-overview/dashboard`,children:`Dashboard`}),`, and via the Dashboard you can also create additional, associated tenants; you’re allowed to create more than one Auth0 tenant so that you can structure your tenants in a way that will isolate different domains of users and also support your\\xA0`,_jsx(_components.a,{href:`#sdlc-support`,children:`Software Development Life Cycle`}),`\\xA0(SDLC).`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Tenant names cannot be changed, nor reused once deleted. So, make sure you’re happy with your name(s) before you create your Auth0 tenants.`})}),`\n`,_jsxs(_components.p,{children:[`Determining the level of isolation you require when it comes to your user domains is an important step, and together with your branding requirements will subsequently help you determine the number of Auth0 tenants that will be required in your production environment. As we recommend you create a full suite of\\xA0`,_jsx(_components.a,{href:`#sdlc-support`,children:`SDLC supporting tenants`}),`\\xA0for every Auth0 tenant you will run in a production environment, the number of Auth0 tenants you will need to manage can quickly grow. Therefore you should consider carefully before creating multiple Auth0 tenants for production, and should consult our guidance on\\xA0`,_jsx(_components.a,{href:`/docs/get-started/architecture-scenarios/business-to-business/branding`,children:`Branding`}),`\\xA0before making your final decision.`]}),`\n`,_jsx(Heading,{level:`3`,id:`tenant-provision-for-complex-organizations`,children:`Tenant provision for complex organizations`}),`\n`,_jsxs(_components.p,{children:[`In most cases, provisioning separate Auth0 tenants for your customer’s organizations is not necessary. This has become even easier with the release of our new `,_jsx(_components.a,{href:`/docs/manage-users/organizations/organizations-overview`,children:`Organizations feature`}),`. However, in certain circumstances this can be something that is valuable for reducing the complexity of your setup. For instance, we recommend provisioning a separate Auth0 tenant for your customers’ organization as a best practice if:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Your customer organizations need a custom login URL that is unique to the organization. This is generally the case only if you allow your organizations to have their own vanity URL instead of using a common login URL. Auth0 supports one `,_jsx(Tooltip,{tip:`Custom Domain: Third-party domain with a specialized, or vanity, name.`,cta:`View Glossary`,href:`/docs/glossary?term=custom+domain`,children:`custom domain`}),` per tenant.`]}),`\n`,_jsx(_components.li,{children:`Your customer organizations use social providers for login. In this case, it is often desirable for the organization to have a custom consent page for the social provider that is branded to their organization.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If either of these situations is true, we recommend creating a separate Auth0 tenant for each organization that has one of the above criteria.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Maintaining multiple Auth0 tenants can add complexity to your system and should not be done unless absolutely necessary.`})}),`\n`,_jsx(Heading,{level:`2`,id:`tenant-association`,children:`Tenant association`}),`\n`,_jsxs(_components.p,{children:[`To ensure that your\\xA0`,_jsx(_components.a,{href:`/docs/get-started/auth0-overview/create-tenants/child-tenants`,children:`tenants are all associated with your Auth0 contractual agreement`}),`\\xA0and have the same features, ensure all your tenants are associated with your company account. If you have individual developers that want to create their own sandboxes for testing, make sure they get associated with your account so they have the same permissions too. To do this you should contact your Auth0 representative or the `,_jsx(_components.a,{href:`https://support.auth0.com`,children:`Auth0 Support Center`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`custom-domains`,children:`Custom domains`}),`\n`,_jsxs(_components.p,{children:[`When you setup your Auth0 tenant, the URL for accessing that tenant will be of the form\\xA0`,_jsx(_components.code,{children:`https://{yourTenant}.auth0.com`}),`. Providing a\\xA0`,_jsx(_components.a,{href:`/docs/customize/custom-domains`,children:`Custom Domain`}),`\\xA0(also known as a vanity URL), for your Auth0 tenant is not only an important factor for supporting your Branding requirements, but more importantly will also provide you with security benefits too:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Some browsers will, by default, make it\\xA0difficult to communicate in an iFrame if you don’t have a shared domain. For example, `,_jsx(_components.a,{href:`https://support.auth0.com/center/s/article/troubleshoot-auth0-token-renewal-issues-in-safari-with-itp-enabled`,children:`Safari’s ITP causes Auth0 token renewal issues`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`It’s `,_jsx(_components.a,{href:`https://auth0.com/blog/introducing-custom-domains-preview-with-auth0/`,children:`harder to phish your domain if you have a vanity URL`}),`, as the phisher must also create a vanity URL to mimic yours. For example, with a custom domain you can use your own certificate to get an “Extended Validation”, making phishing even harder.`]}),`\n`]}),`\n`,_jsx(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:_jsx(_components.p,{children:`You are allowed only one custom domain per Auth0 tenant. This is because a tenant in Auth0 is intended to represent a “domain” of users. If you need more than one vanity URL, then you likely have more than one domain of users and should be using multiple tenants.`})}),`\n`,_jsxs(_components.p,{children:[`Your custom domain name should also give the user confidence that this is the appropriate place to enter their credentials, and we recommend that you create your custom domain in all environments early on to ensure that you are testing consistently between environments.\\xA0`,_jsx(_components.strong,{children:`It’s extremely important to train your users to to look for suspicious URLs when entering their credentials!`})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Create a custom domain (a.k.a. `,_jsx(_components.code,{children:`CNAME`}),`) for your Auth0 tenant, and also create one in development too so you can ensure you have managed the `,_jsx(_components.code,{children:`CNAME`}),` correctly. For example, you could create a `,_jsx(_components.code,{children:`CNAME`}),` which maps `,_jsx(_components.code,{children:`login.mycompany.com`}),` to `,_jsx(_components.code,{children:`mycompany-prod.auth0.com`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`In almost all cases, customers have been most successful when adopting a strategy of a centralised domain for authentication across multiple product or service brands. This strategy provides users with a consistent UX, and also mitigates the complexity of deploying and maintaining multiple Auth0 tenants in a production environment. If you are considering having multiple domains for different brands, please refer to the `,_jsx(_components.a,{href:`/docs/get-started/architecture-scenarios/business-to-business/branding`,children:`Branding`}),`\\xA0guidance before you begin implementing.`]}),`\n`,_jsx(Heading,{level:`2`,id:`sdlc-support`,children:`SDLC support`}),`\n`,_jsxs(_components.p,{children:[`Every company has some form of Software Development Life Cycle (SDLC), and throughout the development process you will want to align with that strategy. For instance, you need to be able to test your integration with Auth0 in a similar fashion as you test the applications themselves. It is therefore important to\\xA0`,_jsx(_components.a,{href:`/docs/get-started/auth0-overview/create-tenants/set-up-multiple-environments`,children:`structure Auth0 tenants to support your SDLC`}),`, and there is a consistent pattern which our customers typically follow when it comes to the best practices associated with tenant layout for doing so:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Environment`}),_jsx(_components.th,{children:`Sample Tenant Name`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Development`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`company-dev`})}),_jsx(_components.td,{children:`A shared environment where most of your development work occurs`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`QA/Testing`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`company-qa`}),` or `,_jsx(_components.strong,{children:`company-uat`})]}),_jsx(_components.td,{children:`An environment for formal testing of the changes you’ve made`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Production`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`company-prod`})}),_jsx(_components.td,{children:`The production tenant`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`In some cases you may also want to create one or more sandboxes (e.g.,\\xA0`,_jsx(_components.strong,{children:`company-sandbox1`}),`,\\xA0`,_jsx(_components.strong,{children:`company-sandbox2`}),`) so that you can test changes without compromising your development environment. This might be where you test deployment scripts and the like.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You can also take advantage of our `,_jsx(_components.a,{href:`/docs/get-started/architecture-scenarios/checklists`,children:`Implementation Checklists`}),` that you can download and customize to meet your implementation project needs.`]})}),`\n`,_jsx(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:_jsxs(_components.p,{children:[`Customers with an Enterprise subscription should ensure tenants set up to support their SDLC are properly `,_jsx(_components.a,{href:`/docs/get-started/auth0-overview/create-tenants/child-tenants`,children:`linked to their subscription`}),`. This will ensure each tenant has a consistent set of features enabled.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`project-planning-guide`,children:`Project Planning Guide`}),`\n`,_jsx(_components.p,{children:`We provide planning guidance in PDF format that you can download and refer to for details about our recommended strategies.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`https://assets.ctfassets.net/cdy7uua7fh8z/63F0WOPJdVzsPMxV1Xvp8x/7a329487c5e890d8e820f6a48983b46a/B2B_Project_Planning.pdf`,children:`B2B IAM Project Planning Guide`})}),`\n`,_jsx(Heading,{level:`2`,id:`multiple-organization-architecture-multitenancy`,children:`Multiple Organization Architecture (Multitenancy)`}),`\n`,_jsx(_components.p,{children:`Many B2B platforms implement some form of isolation and/or branding for their customers’ organization, and this can add complexity to any Identity and Access Management (IAM) system. If this applies to you, then we recommend you take some time to read through our guidance and best practice advice for this type of environment.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/docs/get-started/architecture-scenarios/multiple-organization-architecture`,children:`Multiple Organization Architecture`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Business-to-Business Architecture","sidebarTitle":"Architecture","description":"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.","href":"/docs/get-started/architecture-scenarios/business-to-business/architecture"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Tenant provision","slug":"tenant-provision","depth":2,"children":[{"title":"Tenant provision for complex organizations","slug":"tenant-provision-for-complex-organizations","depth":3,"children":[]}]},{"title":"Tenant association","slug":"tenant-association","depth":2,"children":[]},{"title":"Custom domains","slug":"custom-domains","depth":2,"children":[]},{"title":"SDLC support","slug":"sdlc-support","depth":2,"children":[]},{"title":"Project Planning Guide","slug":"project-planning-guide","depth":2,"children":[]},{"title":"Multiple Organization Architecture (Multitenancy)","slug":"multiple-organization-architecture-multitenancy","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/auth0/68ac07e0f912aad4/docs/scripts/navbar-controller.js","/_mintlify/custom/auth0/98c52e2a822716a4/docs/scripts/overscroll-disable.js","/_mintlify/custom/auth0/15b21268d7cc82a0/ui/auth0-docs-ui-1.10.0.umd.js","/_mintlify/custom/auth0/edda60bac2809e28/ui/js/auth0-cli-language.js","/_mintlify/custom/auth0/af65702d2f0210f7/ui/universal-components/universal-components-1.0.27.umd.js"],"subdomain":"auth0","siteName":"Auth0 Docs","title":"Business-to-Business Architecture - Auth0 Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/get-started/architecture-scenarios/business-to-business/architecture","matchLevel":0},"fr-ca":{"href":"/docs/fr-ca/get-started/architecture-scenarios/business-to-business/architecture","matchLevel":1},"ja-jp":{"href":"/docs/ja-jp/get-started/architecture-scenarios/business-to-business/architecture","matchLevel":1}}},"lastModified":"2026-11-12T16:38:06.988Z","originalFileLocation":"docs/get-started/architecture-scenarios/business-to-business/architecture.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Auth0 Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Business-to-Business Architecture - Auth0 Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Auth0 Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://auth0.mintlify.site/docs/images/share-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Business-to-Business Architecture - Auth0 Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://auth0.mintlify.site/docs/images/share-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Auth0 Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9921FE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/get-started/architecture-scenarios/business-to-business/architecture.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr-CA\" href=\"https://auth0.com/docs/fr-ca/get-started/architecture-scenarios/business-to-business/architecture\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja-JP\" href=\"https://auth0.com/docs/ja-jp/get-started/architecture-scenarios/business-to-business/architecture\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://auth0.com/#organization\",\"name\":\"Auth0 Docs\",\"url\":\"https://auth0.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/light.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://auth0.com#website\",\"name\":\"Auth0 Docs\",\"url\":\"https://auth0.com\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture#webpage\",\"url\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\",\"name\":\"Business-to-Business Architecture\",\"description\":\"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.\",\"dateModified\":\"2026-11-12T16:38:06.988Z\",\"isPartOf\":{\"@id\":\"https://auth0.com#website\"},\"breadcrumb\":{\"@id\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Learn the Basics\",\"item\":\"https://auth0.com/docs/get-started/identity-fundamentals\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Architecture Scenarios\",\"item\":\"https://auth0.com/docs/get-started/architecture-scenarios\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Business Use Case Planning Guides\",\"item\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-consumer/architecture\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Business to Business\",\"item\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Business-to-Business Architecture\",\"item\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture#article\",\"headline\":\"Business-to-Business Architecture\",\"name\":\"Business-to-Business Architecture\",\"description\":\"How you configure your Auth0 tenant architecture affects your B2B IAM implementation.\",\"url\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture\",\"mainEntityOfPage\":{\"@id\":\"https://auth0.com/docs/get-started/architecture-scenarios/business-to-business/architecture#webpage\"},\"image\":\"https://auth0.com/docs/images/share-image.png\",\"dateModified\":\"2026-11-12T16:38:06.988Z\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"},\"isPartOf\":{\"@id\":\"https://auth0.com#website\"}}]}\u003c/script>","agentPointerHref":"/docs/get-started/architecture-scenarios/business-to-business/architecture.md","siteName":"Auth0 Docs","nav":{"global":null,"languages":[{"language":"en","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Developers","items":[{"label":"Developer Hub","href":"https://developer.auth0.com"},{"label":"Code Samples \u0026 Guides","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"Blog","href":"https://auth0.com/blog"},{"label":"Changelog","href":"https://auth0.com/changelog"}]},{"header":"Docs","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Quickstarts","href":"https://auth0.com/docs/quickstarts"},{"label":"APIs","href":"https://auth0.com/docs/api"},{"label":"SDK Libraries","href":"https://auth0.com/docs/libraries"},{"label":"Learn","href":"https://auth0.com/learn"},{"label":"Intro to IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Reports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinars","href":"https://auth0.com/resources/webinars"}]},{"header":"Support Center","items":[{"label":"Community","href":"https://community.auth0.com"},{"label":"Help","href":"https://support.auth0.com"},{"label":"FAQs","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Company","items":[{"label":"Our Customers","href":"https://auth0.com/customers"},{"label":"Compliance","href":"https://auth0.com/security"},{"label":"Partners","href":"https://auth0.com/partners"},{"label":"Careers","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"About us","href":"https://auth0.com/about"}]}]},"tabs":[{"tab":"Get Started","icon":"play","directory":"accordion","pages":[{"title":"Get Started with Auth0","sidebarTitle":"Get Started","href":"/docs/get-started"},{"group":"Learn the Basics","root":{"title":"Identity Fundamentals","href":"/docs/get-started/identity-fundamentals"},"expanded":true,"pages":[{"title":"Introduction to Auth0","href":"/docs/get-started/identity-fundamentals/introduction-to-auth0"},{"title":"Introduction to Identity and Access Management (IAM)","href":"/docs/get-started/identity-fundamentals/identity-and-access-management"},{"title":"Authentication vs. Authorization","href":"/docs/get-started/identity-fundamentals/authentication-and-authorization"},{"group":"Authentication and Authorization Flows","root":{"sidebarTitle":"Overview","title":"Authentication and Authorization Flows","href":"/docs/get-started/authentication-and-authorization-flow"},"pages":[{"title":"Which OAuth 2.0 Flow Should I Use?","href":"/docs/get-started/authentication-and-authorization-flow/which-oauth-2-0-flow-should-i-use"},{"group":"Authorization Code Flow","pages":[{"sidebarTitle":"Overview","title":"Authorization Code Flow","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow"},{"title":"Add Login Using the Authorization Code Flow","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/add-login-auth-code-flow"},{"title":"Call Your API Using the Authorization Code Flow","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow"},{"title":"Authorization Code Flow with Rich Authorization Requests (RAR)","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/authorization-code-flow-with-rar"},{"title":"Authorization Code Flow with Pushed Authorization Requests (PAR)","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/authorization-code-flow-with-par"},{"title":"Authorization Code Flow with JWT-Secured Authorization Requests (JAR)","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/authorization-code-flow-with-jar"}]},{"group":"Authorization Code Flow with Proof Key for Code Exchange","pages":[{"title":"Authorization Code Flow with Proof Key for Code Exchange (PKCE)","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce"},{"title":"Add Login Using the Authorization Code Flow with PKCE","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/add-login-using-the-authorization-code-flow-with-pkce"},{"title":"Call Your API Using the Authorization Code Flow with PKCE","href":"/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce"}]},{"group":"Client Credentials Flow","pages":[{"sidebarTitle":"Overview","title":"Client Credentials Flow","href":"/docs/get-started/authentication-and-authorization-flow/client-credentials-flow"},{"title":"Call Your API Using the Client Credentials Flow","href":"/docs/get-started/authentication-and-authorization-flow/client-credentials-flow/call-your-api-using-the-client-credentials-flow"},{"title":"Customize Tokens Using Hooks with Client Credentials Flow","href":"/docs/get-started/authentication-and-authorization-flow/client-credentials-flow/customize-tokens-using-hooks-with-client-credentials-flow"}]},{"group":"Client-Initiated Backchannel Authentication Flow","pages":[{"sidebarTitle":"Overview","title":"Client-Initiated Backchannel Authentication Flow","href":"/docs/get-started/authentication-and-authorization-flow/client-initiated-backchannel-authentication-flow"},{"title":"Mobile Push Notifications with CIBA","href":"/docs/get-started/authentication-and-authorization-flow/client-initiated-backchannel-authentication-flow/mobile-push-notifications-with-ciba"},{"title":"Email Notifications with CIBA","href":"/docs/get-started/authentication-and-authorization-flow/client-initiated-backchannel-authentication-flow/email-notifications-with-ciba"},{"title":"User Authorization with CIBA","href":"/docs/get-started/authentication-and-authorization-flow/client-initiated-backchannel-authentication-flow/user-authorization-with-ciba"}]},{"group":"Custom Token Exchange Flow","pages":[{"sidebarTitle":"Overview","title":"Custom Token Exchange Flow","href":"/docs/get-started/authentication-and-authorization-flow/token-exchange-flow"},{"sidebarTitle":"Call Your API Using the Custom Token Exchange Flow","title":"Call Your API Using the Custom Token Exchange Flow","href":"/docs/get-started/authentication-and-authorization-flow/token-exchange-flow/call-your-api-using-the-custom-token-exchange-flow"}]},{"group":"Device Authorization Flow","pages":[{"sidebarTitle":"Overview","title":"Device Authorization Flow","href":"/docs/get-started/authentication-and-authorization-flow/device-authorization-flow"},{"title":"Call Your API Using the Device Authorization Flow","href":"/docs/get-started/authentication-and-authorization-flow/device-authorization-flow/call-your-api-using-the-device-authorization-flow"}]},{"group":"Implicit Flow with Form Post","pages":[{"sidebarTitle":"Overview","title":"Implicit Flow with Form Post","href":"/docs/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post"},{"title":"Mitigate Replay Attacks When Using the Implicit Flow","href":"/docs/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post/mitigate-replay-attacks-when-using-the-implicit-flow"},{"title":"Add Login Using the Implicit Flow with Form Post","href":"/docs/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post/add-login-using-the-implicit-flow-with-form-post"}]},{"group":"Hybrid Flow","pages":[{"sidebarTitle":"Overview","title":"Hybrid Flow","href":"/docs/get-started/authentication-and-authorization-flow/hybrid-flow"},{"title":"Call Your API Using the Hybrid Flow","href":"/docs/get-started/authentication-and-authorization-flow/hybrid-flow/call-api-hybrid-flow"}]},{"group":"Resource Owner Password Flow","pages":[{"sidebarTitle":"Overview","title":"Resource Owner Password Flow","href":"/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow"},{"title":"Call Your API Using Resource Owner Password Flow","href":"/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow/call-your-api-using-resource-owner-password-flow"},{"title":"Avoid Common Issues with Resource Owner Password Flow and Attack Protection","href":"/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow/avoid-common-issues-with-resource-owner-password-flow-and-attack-protection"}]},{"title":"Authenticate with Private Key JWT","href":"/docs/get-started/authentication-and-authorization-flow/authenticate-with-private-key-jwt"},{"title":"Authenticate with mTLS","href":"/docs/get-started/authentication-and-authorization-flow/authenticate-with-mtls"},{"title":"Client Credentials Exchange","href":"/docs/get-started/authentication-and-authorization-flow/client-credentials-exchange"}]},{"group":"Architecture Scenarios","root":{"title":"Architecture Scenarios","href":"/docs/get-started/architecture-scenarios"},"pages":[{"group":"Business Use Case Planning Guides","pages":[{"group":"Business to Consumer","root":{"title":"Business to Consumer Architecture Scenarios","sidebarTitle":"Business to Consumer","href":"/docs/get-started/architecture-scenarios/business-to-consumer"},"pages":[{"title":"Business-to-Consumer Architecture","sidebarTitle":"Architecture","href":"/docs/get-started/architecture-scenarios/business-to-consumer/architecture"},{"title":"Business-to-Consumer Provisioning","sidebarTitle":"Provisioning","href":"/docs/get-started/architecture-scenarios/business-to-consumer/provisioning"},{"title":"Business-to-Consumer Authentication","sidebarTitle":"Authentication","href":"/docs/get-started/architecture-scenarios/business-to-consumer/authentication"},{"title":"Business-to-Consumer Branding","sidebarTitle":"Branding","href":"/docs/get-started/architecture-scenarios/business-to-consumer/branding"},{"title":"Business-to-Consumer Deployment Automation","sidebarTitle":"Deployment Automation","href":"/docs/get-started/architecture-scenarios/business-to-consumer/deployment"},{"title":"Business-to-Consumer Quality Assurance","sidebarTitle":"Quality Assurance","href":"/docs/get-started/architecture-scenarios/business-to-consumer/quality-assurance"},{"title":"Business-to-Consumer Profile Management","sidebarTitle":"Profile Management","href":"/docs/get-started/architecture-scenarios/business-to-consumer/profile-management"},{"title":"Business-to-Consumer Authorization","sidebarTitle":"Authorization","href":"/docs/get-started/architecture-scenarios/business-to-consumer/authorization"},{"title":"Business-to-Consumer Logout","sidebarTitle":"Logout","href":"/docs/get-started/architecture-scenarios/business-to-consumer/logout"},{"title":"Business-to-Consumer Operations","sidebarTitle":"Operations","href":"/docs/get-started/architecture-scenarios/business-to-consumer/operations"},{"group":"Launch Preparation","root":{"title":"Business-to-Consumer Launch Preparation","sidebarTitle":"Launch Preparation","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch"},"pages":[{"title":"Business-to-Consumer Tenant Check","sidebarTitle":"Tenant Check","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch/tenant-check"},{"title":"Business-to-Consumer Testing Complete","sidebarTitle":"Testing Complete","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch/testing"},{"title":"Business-to-Consumer Operations Readiness","sidebarTitle":"Operations Readiness","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch/operations-readiness"},{"title":"Business-to-Consumer Compliance Readiness","sidebarTitle":"Compliance Readiness","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch/compliance-readiness"},{"title":"Business-to-Consumer Support Readiness","sidebarTitle":"Support Readiness","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch/support-readiness"},{"title":"Business-to-Consumer Launch Day Preparation","sidebarTitle":"Launch Day Preparation","href":"/docs/get-started/architecture-scenarios/business-to-consumer/launch/launch-day"}]}]},{"group":"Business to Business","root":{"title":"Business to Business Architecture Scenarios","sidebarTitle":"Business to Business","description":"Plan a B2B SaaS identity solution on Auth0 with this multi-tenant architecture guide, covering everything from setting up your authentication, to application deployment and launch.","href":"/docs/get-started/architecture-scenarios/business-to-business"},"pages":[{"title":"Business-to-Business Architecture","sidebarTitle":"Architecture","href":"/docs/get-started/architecture-scenarios/business-to-business/architecture"},{"title":"Business-to-Business Provisioning","sidebarTitle":"Provisioning","description":"User provisioning functionality and considerations for your B2B IAM implementation.","href":"/docs/get-started/architecture-scenarios/business-to-business/provisioning"},{"title":"Business-to-Business Authentication","sidebarTitle":"Authentication","href":"/docs/get-started/architecture-scenarios/business-to-business/authentication"},{"title":"Business-to-Business Branding","sidebarTitle":"Branding","href":"/docs/get-started/architecture-scenarios/business-to-business/branding"},{"title":"Business-to-Business Deployment Automation","sidebarTitle":"Deployment Automation","href":"/docs/get-started/architecture-scenarios/business-to-business/deployment"},{"title":"Business-to-Business Quality Assurance","sidebarTitle":"Quality Assurance","href":"/docs/get-started/architecture-scenarios/business-to-business/quality-assurance"},{"title":"Business-to-Business Profile Management","sidebarTitle":"Profile Management","href":"/docs/get-started/architecture-scenarios/business-to-business/profile-management"},{"title":"Business-to-Business Authorization","sidebarTitle":"Authorization","href":"/docs/get-started/architecture-scenarios/business-to-business/authorization"},{"title":"Business-to-Business Logout","sidebarTitle":"Logout","href":"/docs/get-started/architecture-scenarios/business-to-business/logout"},{"title":"Business-to-Business Operations","sidebarTitle":"Operations","href":"/docs/get-started/architecture-scenarios/business-to-business/operations"},{"group":"Launch Preparation (B2B)","root":{"title":"Business-to-Business Launch Preparation","href":"/docs/get-started/architecture-scenarios/business-to-business/launch"},"pages":[{"title":"Tenant Check (B2B)","href":"/docs/get-started/architecture-scenarios/business-to-business/launch/tenant-check"},{"title":"Testing Complete (B2B)","href":"/docs/get-started/architecture-scenarios/business-to-business/launch/testing"},{"title":"Operations Readiness (B2B)","href":"/docs/get-started/architecture-scenarios/business-to-business/launch/operations-readiness"},{"title":"Compliance Readiness (B2B)","href":"/docs/get-started/architecture-scenarios/business-to-business/launch/compliance-readiness"},{"title":"Support Readiness (B2B)","href":"/docs/get-started/architecture-scenarios/business-to-business/launch/support-readiness"},{"title":"Launch Day Preparation (B2B)","href":"/docs/get-started/architecture-scenarios/business-to-business/launch/launch-day"}]}]},{"title":"Business to Employees","href":"/docs/get-started/architecture-scenarios/b2e"}]},{"group":"Application Architecture","pages":[{"group":"Multiple Organization Architecture","root":{"title":"Multiple Organization Architecture","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture"},"pages":[{"group":"Single Identity Provider Organizations","root":{"sidebarTitle":"Overview","title":"Single Identity Provider Organizations","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations"},"pages":[{"title":"Single Identity Provider: Provisioning","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/provisioning"},{"title":"Single Identity Provider: Authentication","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/authentication"},{"title":"Single Identity Provider: Branding","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/branding"},{"title":"Single Identity Provider: Authorization","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/authorization"},{"title":"Single Identity Provider: Profile Management","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/profile-management"},{"title":"Single Identity Provider: Logout","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/logout"}]},{"title":"Multiple Identity Provider Organizations","href":"/docs/get-started/architecture-scenarios/multiple-organization-architecture/multiple-idp-orgs"}]},{"group":"SSO for Regular Web Apps","root":{"title":"Regular Web Applications with Single Sign-On","href":"/docs/get-started/architecture-scenarios/sso-for-regular-web-apps"},"pages":[{"title":"Solution Overview (Web Apps + SSO)","href":"/docs/get-started/architecture-scenarios/sso-for-regular-web-apps/part-1"},{"title":"Auth0 Configuration (Web Apps + SSO)","href":"/docs/get-started/architecture-scenarios/sso-for-regular-web-apps/part-2"},{"title":"Application Implementation (Web Apps + SSO)","href":"/docs/get-started/architecture-scenarios/sso-for-regular-web-apps/part-3"},{"title":"ASP.NET Core Implementation (Web Apps + SSO)","href":"/docs/get-started/architecture-scenarios/sso-for-regular-web-apps/implementation-aspnetcore"},{"title":"Conclusion (Web Apps + SSO)","href":"/docs/get-started/architecture-scenarios/sso-for-regular-web-apps/part-4"}]},{"group":"Server Application + API","root":{"title":"Server Applications with API","href":"/docs/get-started/architecture-scenarios/server-application-api"},"pages":[{"title":"Solution Overview (Server Apps + API)","href":"/docs/get-started/architecture-scenarios/server-application-api/part-1"},{"title":"Auth0 Configuration (Server Apps + API)","href":"/docs/get-started/architecture-scenarios/server-application-api/part-2"},{"title":"Application Implementation (Server Apps + API)","href":"/docs/get-started/architecture-scenarios/server-application-api/part-3"},{"title":"Server Apps + API: Node.js Implementation for the API","href":"/docs/get-started/architecture-scenarios/server-application-api/api-implementation-nodejs"},{"title":"Server Apps + API: Python Implementation for the Cron Job","href":"/docs/get-started/architecture-scenarios/server-application-api/cron-implementation-python"},{"title":"Conclusion (Server Apps + API)","href":"/docs/get-started/architecture-scenarios/server-application-api/part-4"}]},{"group":"SPA + API","root":{"title":"Single-Page Applications (SPA) with API","href":"/docs/get-started/architecture-scenarios/spa-api"},"pages":[{"title":"Solution Overview (SPAs + API)","href":"/docs/get-started/architecture-scenarios/spa-api/part-1"},{"title":"Auth0 Configuration (SPAs + API)","href":"/docs/get-started/architecture-scenarios/spa-api/part-2"},{"title":"API and SPA Configuration (SPAs + API)","href":"/docs/get-started/architecture-scenarios/spa-api/part-3"},{"title":"SPA Angular 2 Implementation (SPAs + API)","href":"/docs/get-started/architecture-scenarios/spa-api/spa-implementation-angular2"},{"title":"Node.js API Implementation (SPAs + API)","href":"/docs/get-started/architecture-scenarios/spa-api/api-implementation-nodejs"},{"title":"Conclusion (SPAs + API)","href":"/docs/get-started/architecture-scenarios/spa-api/part-4"}]},{"group":"Mobile + API","root":{"title":"Mobile Applications with API","href":"/docs/get-started/architecture-scenarios/mobile-api"},"pages":[{"title":"Solution Overview (Mobile Apps + API)","href":"/docs/get-started/architecture-scenarios/mobile-api/part-1"},{"title":"Auth0 Configuration (Mobile Apps + API)","href":"/docs/get-started/architecture-scenarios/mobile-api/part-2"},{"title":"API and Mobile Configuration (Mobile Apps + API)","href":"/docs/get-started/architecture-scenarios/mobile-api/part-3"},{"title":"Android Mobile Application Implementation (Mobile Apps + API)","href":"/docs/get-started/architecture-scenarios/mobile-api/mobile-implementation-android"},{"title":"Node.js API Implementation (Mobile Apps + API)","href":"/docs/get-started/architecture-scenarios/mobile-api/api-implementation-nodejs"},{"title":"Conclusion (Mobile Apps + API)","href":"/docs/get-started/architecture-scenarios/mobile-api/part-4"}]}]},{"group":"Implementation Help","pages":[{"title":"Implementation Planning Checklists","sidebarTitle":"Checklists","href":"/docs/get-started/architecture-scenarios/checklists"},{"title":"Implementation Resources","sidebarTitle":"Resources","href":"/docs/get-started/architecture-scenarios/implementation-resources"}]}]}]},{"group":"Quickstarts","pages":[{"title":"Auth0 Quickstarts","sidebarTitle":"Quickstarts","href":"/docs/quickstarts"},{"group":"Single Page App","pages":[{"title":"Add Login to Your React Application","sidebarTitle":"React","mode":"wide","href":"/docs/quickstart/spa/react"},{"title":"Add Login to Your Angular Application","sidebarTitle":"Angular","mode":"wide","href":"/docs/quickstart/spa/angular"},{"mode":"wide","sidebarTitle":"JavaScript","title":"Add Login to Your JavaScript Application","href":"/docs/quickstart/spa/vanillajs"},{"mode":"wide","sidebarTitle":"Cap'n Web","title":"Add Login to Your Cap'n Web Application","href":"/docs/quickstart/spa/capn-web"},{"title":"Add Login to Your Vue Application","sidebarTitle":"Vue","mode":"wide","href":"/docs/quickstart/spa/vuejs"},{"mode":"wide","sidebarTitle":"Flutter (Web)","title":"Add Login to Your Flutter Web Application","href":"/docs/quickstart/spa/flutter"},{"mode":"wide","sidebarTitle":"Svelte","title":"Add Login to Your Svelte Application","href":"/docs/quickstart/spa/svelte"}]},{"group":"Regular Web App","pages":[{"title":"Add Login to Your Next.js Application","sidebarTitle":"Next.js","mode":"wide","href":"/docs/quickstart/webapp/nextjs"},{"title":"Add Login to Your TanStack Start Application","sidebarTitle":"TanStack Start React","mode":"wide","href":"/docs/quickstart/webapp/tanstack-start"},{"title":"Add Login to Your React Router Application","sidebarTitle":"React Router","mode":"wide","href":"/docs/quickstart/webapp/react-router"},{"title":"Add Login to Your Nuxt.js Application","sidebarTitle":"Nuxt.js","mode":"wide","href":"/docs/quickstart/webapp/nuxt"},{"mode":"wide","sidebarTitle":"Express","title":"Add Login to Your Express Application","href":"/docs/quickstart/webapp/express"},{"mode":"wide","title":"Add Login to Your Express Application","sidebarTitle":"Express (Beta)","href":"/docs/quickstart/webapp/express-beta"},{"title":"Add Login to Your Fastify Application","sidebarTitle":"Fastify","mode":"wide","href":"/docs/quickstart/webapp/fastify"},{"mode":"wide","sidebarTitle":"Flask","title":"Add Login to Your Flask Application","href":"/docs/quickstart/webapp/python"},{"mode":"wide","sidebarTitle":"Django","title":"Add Login to your Django Application","href":"/docs/quickstart/webapp/django/interactive"},{"mode":"wide","sidebarTitle":"FastAPI","title":"Add Login to Your FastAPI Application","href":"/docs/quickstart/webapp/fastapi"},{"mode":"wide","sidebarTitle":"Go","title":"Add Login to Your Go Application","href":"/docs/quickstart/webapp/golang"},{"mode":"wide","sidebarTitle":"Java","title":"Add Login to Your Java Servlet Application","href":"/docs/quickstart/webapp/java"},{"mode":"wide","sidebarTitle":"Java EE","title":"Add Login to Your Java EE Application","href":"/docs/quickstart/webapp/java-ee"},{"title":"Java Spring Boot","href":"/docs/quickstart/webapp/java-spring-boot"},{"mode":"wide","sidebarTitle":"Blazor Server","title":"Add Login to Your Blazor Server Application","href":"/docs/quickstart/webapp/aspnet-core-blazor-server"},{"mode":"wide","sidebarTitle":"ASP.NET Core MVC","title":"Add Login to Your ASP.NET MVC Application","href":"/docs/quickstart/webapp/aspnet-core"},{"title":"Add Login to Your Laravel Application","sidebarTitle":"Laravel","mode":"wide","href":"/docs/quickstart/webapp/laravel/interactive"},{"mode":"wide","sidebarTitle":"PHP","title":"Add Login to Your PHP Application","href":"/docs/quickstart/webapp/php/interactive"},{"mode":"wide","title":"NGINX Plus","href":"/docs/quickstart/webapp/nginx-plus/interactive"},{"mode":"wide","sidebarTitle":"Apache","title":"Add Login to Your Apache Application","href":"/docs/quickstart/webapp/apache/index"},{"mode":"wide","sidebarTitle":"Ruby on Rails","title":"Add Login to Your Ruby on Rails Application","href":"/docs/quickstart/webapp/rails/interactive"},{"title":"Add Login to Your Hono Application","mode":"wide","sidebarTitle":"Hono","href":"/docs/quickstart/webapp/hono"},{"title":"Add Login to Your ASP.NET OWIN Application","sidebarTitle":"ASP.NET OWIN","href":"/docs/quickstart/webapp/aspnet-owin"}]},{"group":"Native/Mobile App","pages":[{"title":"Add Login to Your iOS or macOS Application using the Auth0.swift SDK","sidebarTitle":"iOS / macOS","mode":"wide","href":"/docs/quickstart/native/ios-swift"},{"title":"Add Login to Your Android Application using the Auth0.Android SDK","sidebarTitle":"Android","mode":"wide","href":"/docs/quickstart/native/android"},{"mode":"wide","sidebarTitle":"Android Facebook Login","title":"Add Native Facebook Login to Your Android Application","href":"/docs/quickstart/native/android-facebook-login"},{"mode":"wide","sidebarTitle":"iOS Facebook Login","title":"Add Native Facebook Login to Your iOS Application","href":"/docs/quickstart/native/ios-swift-facebook-login"},{"title":"Add Login to Your React Native Application","sidebarTitle":"React Native","mode":"wide","href":"/docs/quickstart/native/react-native"},{"title":"Add Login to Your Expo Application","sidebarTitle":"Expo","mode":"wide","href":"/docs/quickstart/native/react-native-expo"},{"title":"Add Login to Your Flutter Application","sidebarTitle":"Flutter","mode":"wide","href":"/docs/quickstart/native/flutter"},{"title":"Add Login to Your Flutter Windows Application","sidebarTitle":"Flutter Windows","mode":"wide","href":"/docs/quickstart/native/flutter-windows"},{"title":"Add Login to Your Kotlin Multiplatform Application using the Auth0 Kotlin Multiplatform SDK","sidebarTitle":"Kotlin Multiplatform","mode":"wide","href":"/docs/quickstart/native/kotlin-multiplatform"},{"mode":"wide","sidebarTitle":".NET Android \u0026 iOS","title":"Add Login to Your .NET Android \u0026 iOS Application","href":"/docs/quickstart/native/net-android-ios/index"},{"title":"Add login to your .NET MAUI application","sidebarTitle":"MAUI","mode":"wide","href":"/docs/quickstart/native/maui"},{"title":"Add Login to Your Ionic Angular with Capacitor Application","sidebarTitle":"Ionic \u0026 Capacitor (Angular)","mode":"wide","href":"/docs/quickstart/native/ionic-angular"},{"title":"Add Login to Your Ionic React with Capacitor Application","sidebarTitle":"Ionic \u0026 Capacitor (React)","mode":"wide","href":"/docs/quickstart/native/ionic-react"},{"title":"Add Login to Your Ionic Vue with Capacitor Application","sidebarTitle":"Ionic \u0026 Capacitor (Vue)","mode":"wide","href":"/docs/quickstart/native/ionic-vue"},{"mode":"wide","sidebarTitle":"UWP","title":"Add login to your UWP application","href":"/docs/quickstart/native/windows-uwp-csharp"},{"mode":"wide","title":"Device Authorization Flow","href":"/docs/quickstart/native/device/interactive"},{"mode":"wide","title":"Add Login to Your WPF or WinForms Application","sidebarTitle":"WPF / WinForms","href":"/docs/quickstart/native/wpf-winforms"}]},{"group":"Backend/API","pages":[{"title":"Protect Your Express.js API","sidebarTitle":"Express API","mode":"wide","href":"/docs/quickstart/backend/nodejs"},{"mode":"wide","title":"Protect Your Express.js API","sidebarTitle":"Express API (Beta)","href":"/docs/quickstart/backend/express-api-beta"},{"mode":"wide","sidebarTitle":"Fastify API","title":"Protect Your Fastify API","href":"/docs/quickstart/backend/fastify/index"},{"mode":"wide","sidebarTitle":"Django API","title":"Add Authorization to Your Django API Application","href":"/docs/quickstart/backend/django/interactive"},{"title":"Flask API","href":"/docs/quickstart/backend/python/index"},{"mode":"wide","sidebarTitle":"FastAPI API","title":"FastAPI API","href":"/docs/quickstart/backend/fastapi"},{"title":"Java Springboot API","href":"/docs/quickstart/backend/java-spring-security5"},{"title":"Protect Your Go API","sidebarTitle":"Go API","mode":"wide","href":"/docs/quickstart/backend/golang"},{"mode":"wide","title":"ASP.NET Core Web API","href":"/docs/quickstart/backend/aspnet-core-webapi"},{"mode":"wide","title":"ASP.NET Web API (OWIN): Authorization","sidebarTitle":"ASP.NET Web API (OWIN)","href":"/docs/quickstart/backend/webapi-owin"},{"mode":"wide","sidebarTitle":"Laravel API","title":"Add Authorization to Your Laravel Application","href":"/docs/quickstart/backend/laravel/interactive"},{"mode":"wide","sidebarTitle":"PHP API","title":"Add Authorization to Your PHP Application","href":"/docs/quickstart/backend/php/interactive"},{"mode":"wide","sidebarTitle":"Ruby on Rails API","title":"Add Authorization to Your Ruby on Rails API","href":"/docs/quickstart/backend/rails/interactive"}]}]},{"group":"AI Tools","root":{"title":"AI Tools","href":"/docs/get-started/ai-tools"},"expanded":true,"directory":"accordion","pages":[{"title":"Agent Skills for Auth0","href":"/docs/quickstart/agent-skills"},{"group":"Auth0 Model Context Protocol (MCP) Server","pages":[{"title":"Getting Started with Auth0 Model Context Protocol (MCP) Server","sidebarTitle":"Getting Started","href":"/docs/get-started/auth0-mcp-server/getting-started-with-auth0-mcp-server"},{"group":"Guides","root":{"sidebarTitle":"Overview","title":"Auth0 Model Context Protocol (MCP) Server Guides","href":"/docs/get-started/auth0-mcp-server/auth0-mcp-server-guides"},"pages":[{"title":"Streamline API Authorization Flows with Auth0 Model Context Protocol (MCP) Server","sidebarTitle":"Streamline API Authorization Flows","href":"/docs/get-started/auth0-mcp-server/auth0-mcp-server-guides/streamline-api-authorization-flows-with-auth0-model-context-protocol-mcp"},{"title":"Implement Advanced Security Monitoring with Auth0 Model Context Protocol (MCP) Server","sidebarTitle":"Implement Advanced Security Monitoring","href":"/docs/get-started/auth0-mcp-server/auth0-mcp-server-guides/implement-advanced-security-monitoring-with-auth0-model-context-protocol-mcp"},{"title":"Understanding Scopes","href":"/docs/get-started/auth0-mcp-server/auth0-mcp-server-guides/understanding-scopes"}]},{"title":"Auth0 Model Context Protocol (MCP) Server Tools Reference","sidebarTitle":"Tools Reference","href":"/docs/get-started/auth0-mcp-server/auth0-mcp-tools-reference"}]},{"title":"Auth0 Agent Experience Score","href":"/docs/get-started/auth0-agent-experience"},{"title":"AI Doc Tools","href":"/docs/get-started/build-with-ai-tools"},{"title":"Auth0 Guide","href":"/docs/get-started/auth0-guide"}]},{"group":"Auth0 Configuration","root":{"sidebarTitle":"Overview","title":"Auth0 Overview","href":"/docs/get-started/auth0-overview"},"expanded":true,"directory":"accordion","pages":[{"group":"Auth0 Dashboard","root":{"title":"Auth0 Dashboard","href":"/docs/get-started/auth0-overview/dashboard"},"pages":[{"title":"Navigate Auth0 Dashboard","sidebarTitle":"Navigate Auth0 Dashboard","href":"/docs/get-started/auth0-overview/dashboard/use-dashboard-navigation"},{"title":"About the Activity Page","href":"/docs/get-started/auth0-overview/dashboard/activity"},{"title":"Search Capabilities in Auth0 Dashboard","href":"/docs/get-started/auth0-overview/dashboard/search-and-filter-auth0-dashboard"},{"group":"Manage Dashboard Access","root":{"title":"Manage Dashboard Access","href":"/docs/get-started/manage-dashboard-access"},"pages":[{"title":"Dashboard Access by Role","href":"/docs/get-started/manage-dashboard-access/feature-access-by-role"},{"title":"Add Tenant Members","href":"/docs/get-started/manage-dashboard-access/add-dashboard-users"},{"title":"Edit Tenant Members","href":"/docs/get-started/manage-dashboard-access/edit-dashboard-users"},{"title":"Remove Tenant Members","href":"/docs/get-started/manage-dashboard-access/remove-dashboard-users"},{"title":"Update Dashboard User Email Addresses","href":"/docs/get-started/manage-dashboard-access/update-dashboard-user-email"},{"group":"Multi-factor authentication for Dashboard users","pages":[{"title":"Multi-Factor Authentication for Dashboard Users","href":"/docs/get-started/manage-dashboard-access/add-change-remove-mfa"},{"title":"Add Multi-Factor Authentication for Auth0 Dashboard Access","href":"/docs/get-started/manage-dashboard-access/add-change-remove-mfa/add-mfa"},{"title":"Remove or Change Dashboard Multi-Factor Authentication","href":"/docs/get-started/manage-dashboard-access/add-change-remove-mfa/remove-or-change-dashboard-multi-factor-authentication"}]},{"title":"Configure Single Sign-on for Auth0 Dashboard","href":"/docs/get-started/manage-dashboard-access/configure-single-sign-on-for-auth0-dashboard"}]},{"title":"Auth0 Dashboard Login Session Management","href":"/docs/get-started/dashboard-profile/auth0-dashboard-login-session-management"},{"title":"Light and Dark Themes","href":"/docs/get-started/dashboard-profile/light-and-dark-themes"}]},{"group":"Tenants","root":{"title":"Auth0 Tenants","href":"/docs/get-started/auth0-overview/create-tenants"},"pages":[{"title":"Create Multiple Tenants","href":"/docs/get-started/auth0-overview/create-tenants/create-multiple-tenants"},{"title":"Link Multiple Tenants to a Single Subscription","href":"/docs/get-started/auth0-overview/create-tenants/child-tenants"},{"title":"Set Up Multiple Environments","href":"/docs/get-started/auth0-overview/create-tenants/set-up-multiple-environments"},{"title":"Multi-Tenant Applications Best Practices","href":"/docs/get-started/auth0-overview/create-tenants/multi-tenant-apps-best-practices"},{"group":"Tenant Settings","root":{"sidebarTitle":"Overview","title":"Tenant Settings","href":"/docs/get-started/tenant-settings"},"pages":[{"group":"Signing Keys","pages":[{"title":"Signing Keys","sidebarTitle":"Overview","href":"/docs/get-started/tenant-settings/signing-keys"},{"title":"Rotate Signing Keys","href":"/docs/get-started/tenant-settings/signing-keys/rotate-signing-keys"},{"title":"Revoke Signing Keys","href":"/docs/get-started/tenant-settings/signing-keys/revoke-signing-keys"},{"title":"View Signing Certificates","href":"/docs/get-started/tenant-settings/signing-keys/view-signing-certificates"},{"title":"Customer Provided Public Signing Keys","href":"/docs/get-started/tenant-settings/signing-keys/customer-signing-keys"}]},{"title":"Configure Device User Code Settings","href":"/docs/get-started/tenant-settings/configure-device-user-code-settings"},{"title":"Enable Single Sign-On for Tenants","href":"/docs/get-started/tenant-settings/enable-sso-for-legacy-tenants"},{"title":"Find Your Tenant Name or Tenant ID","href":"/docs/get-started/tenant-settings/find-your-tenant-name-or-tenant-id"}]}]},{"group":"APIs","root":{"title":"APIs","href":"/docs/get-started/apis"},"pages":[{"title":"Register APIs","href":"/docs/get-started/auth0-overview/set-up-apis"},{"title":"API Settings","href":"/docs/get-started/apis/api-settings"},{"title":"API Access Policies for Applications","href":"/docs/get-started/apis/api-access-policies-for-applications"},{"title":"Add API Permissions","href":"/docs/get-started/apis/add-api-permissions"},{"title":"Delete API Permissions","href":"/docs/get-started/apis/delete-api-permissions"},{"group":"Scopes","root":{"title":"Scopes","href":"/docs/get-started/apis/scopes"},"pages":[{"title":"API Scopes","href":"/docs/get-started/apis/scopes/api-scopes"},{"title":"OpenID Connect Scopes","href":"/docs/get-started/apis/scopes/openid-connect-scopes"},{"title":"Sample Use Cases: Scopes and Claims","href":"/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims"}]},{"title":"Configure Access Token Profile","href":"/docs/get-started/apis/configure-access-token-profile"},{"title":"Configure JSON Web Encryption (JWE)","href":"/docs/get-started/apis/configure-json-web-encryption"},{"title":"Configure Logical API for Multiple APIs","href":"/docs/get-started/apis/set-logical-api"},{"title":"Configure Rich Authorization Requests (RAR)","href":"/docs/get-started/apis/configure-rich-authorization-requests"},{"title":"Create Machine-to-Machine Applications for Testing","href":"/docs/get-started/apis/create-m2m-app-test"},{"title":"Enable Role-Based Access Control for APIs","href":"/docs/get-started/apis/enable-role-based-access-control-for-apis"}]},{"group":"Auth0 Teams","root":{"title":"Auth0 Teams","href":"/docs/get-started/auth0-teams"},"pages":[{"title":"Tenant Management","href":"/docs/get-started/auth0-teams/tenant-management"},{"title":"Team Member Management","href":"/docs/get-started/auth0-teams/team-member-management"},{"title":"Tenant Member Management","href":"/docs/get-started/auth0-teams/tenant-member-management"},{"title":"Configure Security Policies","href":"/docs/get-started/auth0-teams/configure-security-policies"},{"title":"Troubleshoot Teams","href":"/docs/get-started/auth0-teams/troubleshoot-teams"},{"title":"Team Activity","href":"/docs/get-started/auth0-teams/team-activity"},{"title":"About the Quarterly Snapshot","href":"/docs/get-started/auth0-teams/quarterly-snapshot"}]},{"group":"Deployment","root":{"title":"Deployment Options","href":"/docs/deploy-monitor/deployment-options"},"pages":[{"group":"Private Cloud Deployments","root":{"sidebarTitle":"Overview","title":"Private Cloud Deployments","href":"/docs/deploy-monitor/deploy-private-cloud"},"pages":[{"title":"Private Cloud on AWS","href":"/docs/deploy-monitor/deploy-private-cloud/private-cloud-on-aws"},{"title":"Private Cloud on Azure","href":"/docs/deploy-monitor/deploy-private-cloud/private-cloud-on-azure"},{"title":"Private Cloud Add-on Features","href":"/docs/deploy-monitor/deploy-private-cloud/private-cloud-add-on-features"}]},{"group":"Pre-Deployment Checks","root":{"sidebarTitle":"Overview","title":"Pre-Deployment Checks","href":"/docs/deploy-monitor/pre-deployment-checks"},"pages":[{"title":"Run Production Readiness Checks","href":"/docs/deploy-monitor/pre-deployment-checks/how-to-run-production-checks"},{"title":"Production Readiness Checks: Critical Fixes","href":"/docs/deploy-monitor/pre-deployment-checks/production-check-required-fixes"},{"title":"Production Readiness Checks: Non-Critical Fixes","href":"/docs/deploy-monitor/pre-deployment-checks/production-check-recommended-fixes"},{"title":"Production Readiness Checks: Best Practices","href":"/docs/deploy-monitor/pre-deployment-checks/production-checks-best-practices"},{"title":"Run Pre-Deployment Tests","href":"/docs/deploy-monitor/pre-deployment-checks/predeployment-tests"},{"title":"Pre-Launch Tips","href":"/docs/deploy-monitor/pre-deployment-checks/pre-launch-tips"}]},{"title":"Deployment Checklist","href":"/docs/deploy-monitor/deploy-checklist"},{"title":"Deployment Best Practices","href":"/docs/deploy-monitor/deployment-best-practices"}]},{"group":"B2B Connect - Enterprise","root":{"title":"B2B Connect - Enterprise","href":"/docs/get-started/b2b-connect-enterprise"},"pages":[{"title":"Configure AWS Cognito with Auth0 B2B Connect","href":"/docs/get-started/b2b-connect-enterprise/configure-aws-cognito"},{"title":"Configure Keycloak with Auth0 B2B Connect","href":"/docs/get-started/b2b-connect-enterprise/configure-keycloak"},{"title":"Configure Ory with Auth0 B2B Connect","href":"/docs/get-started/b2b-connect-enterprise/configure-ory"}]}]},{"group":"Applications","pages":[{"group":"Application Types","root":{"title":"Application Types on Auth0","href":"/docs/get-started/applications"},"pages":[{"title":"Confidential and Public Applications","sidebarTitle":"Confidential and Public","href":"/docs/get-started/applications/confidential-and-public-applications"},{"title":"First-Party and Third-Party Applications","href":"/docs/get-started/applications/first-party-and-third-party-applications"},{"title":"Application Profiles","href":"/docs/get-started/applications/application-profiles"}]},{"group":"Register Applications","root":{"title":"Create Applications","href":"/docs/get-started/auth0-overview/create-applications"},"pages":[{"group":"Client ID Metadata Document (CIMD) Registration","root":{"title":"Client ID Metadata Document (CIMD) Registration","href":"/docs/get-started/auth0-overview/create-applications/cimd-overview"},"pages":[{"title":"Register Applications with CIMD","href":"/docs/get-started/auth0-overview/create-applications/register-applications-with-cimd"},{"title":"CIMD Validation Rules","href":"/docs/get-started/auth0-overview/create-applications/cimd-validation-rules"}]},{"title":"Register Native Applications","href":"/docs/get-started/auth0-overview/create-applications/native-apps"},{"title":"Register Single-Page Web Applications","href":"/docs/get-started/auth0-overview/create-applications/single-page-web-apps"},{"title":"Register Regular Web Applications","href":"/docs/get-started/auth0-overview/create-applications/regular-web-apps"},{"title":"Register Machine-to-Machine Applications","href":"/docs/get-started/auth0-overview/create-applications/machine-to-machine-apps"},{"title":"Configure an Identity Provider in Access Gateway","href":"/docs/get-started/auth0-overview/create-applications/configure-an-identity-provider-in-access-gateway"},{"title":"Dynamic Client Registration","href":"/docs/get-started/applications/dynamic-client-registration"},{"title":"Remove Applications","href":"/docs/get-started/applications/remove-applications"}]},{"group":"Configure Applications","pages":[{"title":"Application Settings","href":"/docs/get-started/applications/application-settings"},{"title":"Credential Settings","href":"/docs/get-started/applications/credentials"},{"title":"Subdomain URL Placeholders","href":"/docs/get-started/applications/wildcards-for-subdomains"},{"title":"How to Configure Application (Client) Metadata","sidebarTitle":"Configure Metadata","href":"/docs/get-started/applications/configure-application-metadata"},{"group":"Third-Party Applications","root":{"title":"Third-Party Applications","href":"/docs/get-started/applications/third-party-applications"},"pages":[{"title":"Security Controls for Third-Party Applications","href":"/docs/get-started/applications/third-party-applications/security-controls"},{"title":"User Consent and Third-Party Applications","href":"/docs/get-started/applications/third-party-applications/user-consent-and-third-party-applications"},{"title":"Configure Third-Party Applications","href":"/docs/get-started/applications/third-party-applications/configure-third-party-applications"},{"title":"Troubleshoot Third-Party Applications","href":"/docs/get-started/applications/third-party-applications/troubleshooting"},{"title":"Permissive Mode for Third-Party Applications","href":"/docs/get-started/applications/third-party-applications/permissive-mode"}]}]},{"group":"Connections and Grant Types","pages":[{"title":"Set Up Database Connections","href":"/docs/get-started/applications/set-up-database-connections"},{"title":"Test Database Connections","href":"/docs/get-started/applications/test-database-connections"},{"title":"Update Application Connections","href":"/docs/get-started/applications/update-application-connections"},{"title":"Application Grant Types","href":"/docs/get-started/applications/application-grant-types"},{"title":"Update Grant Types","href":"/docs/get-started/applications/update-grant-types"},{"title":"Application Access to APIs: Client Grants","href":"/docs/get-started/applications/application-access-to-apis-client-grants"},{"title":"Revoke Access to APIs Using Application Grants","href":"/docs/get-started/applications/revoke-api-access"},{"title":"Enable Single Sign-On Integrations for Applications","href":"/docs/get-started/applications/enable-sso-for-applications"}]},{"group":"Security and Compliance","pages":[{"title":"Signing Algorithms","href":"/docs/get-started/applications/signing-algorithms"},{"title":"Change Application Signing Algorithms","href":"/docs/get-started/applications/change-application-signing-algorithms"},{"title":"Rotate Credentials","href":"/docs/get-started/applications/rotate-credentials"},{"title":"Rotate Client Secrets","href":"/docs/get-started/applications/rotate-client-secret"},{"group":"Configure FAPI Compliance","root":{"title":"Configure FAPI Compliance","href":"/docs/get-started/applications/configure-fapi-compliance"},"pages":[{"title":"Configure Auth0 to pass OpenID FAPI Certification Tests","href":"/docs/get-started/applications/configure-fapi-compliance/configure-auth0-to-pass-openid-fapi-certification-tests"}]},{"title":"Configure Pushed Authorization Requests (PAR)","href":"/docs/get-started/applications/configure-par"},{"title":"Configure JWT-secured Authorization Requests (JAR)","href":"/docs/get-started/applications/configure-jar"},{"group":"Configure mTLS Authentication","root":{"title":"Configure mTLS Authentication","href":"/docs/get-started/applications/configure-mtls"},"pages":[{"title":"Set up the Customer Edge","href":"/docs/get-started/applications/configure-mtls/set-up-the-customer-edge"},{"title":"Configure mTLS Authentication for a Tenant","href":"/docs/get-started/applications/configure-mtls/configure-mtls-for-a-tenant"},{"title":"Configure mTLS Authentication for a Client","href":"/docs/get-started/applications/configure-mtls/configure-mtls-for-a-client"}]},{"title":"Configure Private Key JWT Authentication","href":"/docs/get-started/applications/configure-private-key-jwt"},{"title":"Configure Client-Initiated Backchannel Authentication","href":"/docs/get-started/applications/configure-client-initiated-backchannel-authentication"}]},{"group":"Platform and Deployment","pages":[{"title":"Enable Android App Links Support","href":"/docs/get-started/applications/enable-android-app-links-support"},{"title":"Enable Universal Links Support in Apple Xcode","href":"/docs/get-started/applications/enable-universal-links-support-in-apple-xcode"},{"title":"Configure Cross-Origin Resource Sharing","href":"/docs/get-started/applications/set-up-cors"},{"title":"Configure Applications with OIDC Discovery","href":"/docs/get-started/applications/configure-applications-with-oidc-discovery"},{"title":"Configure WS-Fed Applications","href":"/docs/get-started/applications/configure-ws-fed-applications"},{"title":"Test Applications Locally","href":"/docs/get-started/applications/work-with-auth0-locally"}]}]}]},{"tab":"Authenticate","icon":"lock-keyhole","pages":[{"title":"Authenticate","href":"/docs/authenticate"}]},{"tab":"Manage Users","icon":"user-group","directory":"accordion","pages":[{"title":"Manage Users","href":"/docs/manage-users"}]},{"tab":"Brand","icon":"swatchbook","directory":"accordion","pages":[{"title":"Brand","href":"/docs/customize"}]},{"tab":"Extend","icon":"arrow-up-small-big","directory":"accordion","pages":[{"title":"Extend","href":"/docs/extend"}]},{"tab":"Secure","icon":"shield-check","pages":[{"title":"Secure","href":"/docs/secure"}]},{"tab":"Monitor","icon":"chart-simple","directory":"accordion","pages":[{"title":"Monitor","href":"/docs/deploy-monitor"}]},{"tab":"AI Agents \u0026 MCP","icon":"robot","directory":"accordion","pages":[{"title":"AI Agents \u0026 MCP","href":"/docs/ai-agents-mcp"}]},{"tab":"Platform","icon":"credit-card","pages":[{"title":"Platform","href":"/docs/troubleshoot"}]},{"tab":"Dev Tools","icon":"code-simple","menu":[{"item":"APIs","icon":"code-pull-request","pages":[{"title":"APIs","href":"/docs/api"}]},{"item":"CLIs","icon":"terminal","pages":[{"title":"CLIs","href":"/docs/deploy-monitor/auth0-cli"}]},{"item":"SDKs","icon":"cube","dropdowns":[{"dropdown":"SDK Libraries","icon":"book","description":"","pages":[{"title":"SDK Libraries","href":"/docs/libraries"}]},{"dropdown":"auth0-spa-js","icon":"book-open","description":"version: v2.30.0","pages":[{"title":"auth0-spa-js","href":"/docs/sdk/auth0-spa-js/functions/createAuth0Client"}]},{"dropdown":"auth0-react","icon":"book-open","description":"version: v2.30.0","pages":[{"title":"auth0-react","href":"/docs/sdk/auth0-react/functions/Auth0Provider"}]},{"dropdown":"auth0-acul-js","icon":"book-open","description":"","pages":[{"title":"auth0-acul-js","href":"/docs/libraries/acul/js-sdk"}]},{"dropdown":"auth0-acul-react","icon":"book-open","description":"","pages":[{"title":"auth0-acul-react","href":"/docs/libraries/acul/react-sdk"}]},{"dropdown":"auth0-android","icon":"book-open","description":"","pages":[{"title":"auth0-android","href":"/docs/libraries/auth0-android/auth0-android-configuration"}]},{"dropdown":"auth0-php","icon":"book-open","description":"","pages":[{"title":"auth0-php","href":"/docs/libraries/auth0-php"}]}]},{"item":"Universal Components","icon":"objects-column","pages":[{"title":"Universal Components","href":"/docs/get-started/universal-components/universal-components-overview"}]}],"pages":[{"title":"Dev Tools","href":"/docs/api"}]},{"tab":"auth0-spa-js","hidden":true,"pages":[{"title":"auth0-spa-js","href":"/docs/sdk/auth0-spa-js/package-overview"}]},{"tab":"auth0-react","hidden":true,"pages":[{"title":"auth0-react","href":"/docs/sdk/auth0-react/package-overview"}]}]},{"language":"fr-ca","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Développeurs","items":[{"label":"Espace développeurs","href":"https://developer.auth0.com"},{"label":"Exemples de code et guides","href":"https://developer.auth0.com/resources"},{"label":"Infolettre Zero Index","href":"https://auth0.com/blog/newsletter"},{"label":"Blogue","href":"https://auth0.com/blog"},{"label":"Journal des modifications","href":"https://auth0.com/changelog"}]},{"header":"Documentation","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Guides de démarrage rapide","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"Bibliothèques SDK","href":"https://auth0.com/docs/libraries"},{"label":"Apprendre","href":"https://auth0.com/learn"},{"label":"Introduction à l’IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Rapports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinaires","href":"https://auth0.com/resources/webinars"}]},{"header":"Centre d’assistance","items":[{"label":"Communauté","href":"https://community.auth0.com"},{"label":"Aide","href":"https://support.auth0.com"},{"label":"Foire aux questions","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Entreprise","items":[{"label":"Nos clients","href":"https://auth0.com/customers"},{"label":"Conformité","href":"https://auth0.com/security"},{"label":"Partenaires","href":"https://auth0.com/partners"},{"label":"Carrières","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"À propos de nous","href":"https://auth0.com/about"}]}]},"pages":[{"title":"fr-ca","href":"/docs/fr-ca/get-started/architecture-scenarios/business-to-business/architecture"}]},{"language":"ja-jp","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"開発者向け","items":[{"label":"開発者ハブ","href":"https://developer.auth0.com"},{"label":"コードサンプルとガイド","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"ブログ","href":"https://auth0.com/blog"},{"label":"変更履歴","href":"https://auth0.com/changelog"}]},{"header":"ドキュメント","items":[{"label":"ドキュメント","href":"https://auth0.com/docs"},{"label":"クイックスタート","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"SDKライブラリ","href":"https://auth0.com/docs/libraries"},{"label":"教育","href":"https://auth0.com/learn"},{"label":"IAM(CIAM)入門","href":"https://auth0.com/intro-to-iam"},{"label":"レポート","href":"https://auth0.com/resources/whitepapers"},{"label":"ウェビナー","href":"https://auth0.com/resources/webinars"}]},{"header":"サポートセンター","items":[{"label":"コミュニティ","href":"https://community.auth0.com"},{"label":"ヘルプ","href":"https://support.auth0.com"},{"label":"よくある質問","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"会社情報","items":[{"label":"導入企業","href":"https://auth0.com/customers"},{"label":"コンプライアンス","href":"https://auth0.com/security"},{"label":"パートナー","href":"https://auth0.com/partners"},{"label":"採用情報","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"私たちについて","href":"https://auth0.com/about"}]}]},"pages":[{"title":"ja-jp","href":"/docs/ja-jp/get-started/architecture-scenarios/business-to-business/architecture"}]}]},"basePath":"","title":"Business-to-Business Architecture - Auth0 Docs","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":[],"chunks":[]}