1- ---
2- title : Auth0 SSO Configuration | OpenMetadata
3- description : Configure Auth0 Active Directory Single Sign-On for OpenMetadata with complete field reference
4- slug : /main-concepts/metadata-standard/schemas/security/client/azure-ad-sso
5- ---
61
72# Auth0 SSO Configuration
83
94Auth0 Active Directory (Auth0) SSO enables users to log in with their Auth0 accounts using OAuth 2.0 and OpenID Connect (OIDC).
105
116## Authentication Configuration
127
13- ### <span data-id =" providerName " >Provider Name</span >
8+ $$ section
9+ ### Provider Name $(id="providerName")
1410
1511- **Definition:** A human-readable name for this Auth0 SSO configuration instance.
1612- **Example:** Auth0 SSO, Company Auth0, Custom Identity Provider
1713- **Why it matters:** Helps identify this specific SSO configuration in logs and user interfaces.
1814- **Note:** This is a display name and doesn't affect authentication functionality.
15+ $$
1916
20- ### <span data-id =" clientType " >Client Type</span >
17+ $$ section
18+ ### Client Type $(id="clientType")
2119
2220- **Definition:** Defines whether the application is public (no client secret) or confidential (requires client secret).
2321- **Options:** Public | Confidential
@@ -27,48 +25,60 @@ Auth0 Active Directory (Auth0) SSO enables users to log in with their Auth0 acco
2725 - Choose **Public** for SPAs and mobile apps
2826 - Choose **Confidential** for backend services and web applications
2927 - Auth0 typically uses **Confidential** client type
28+ $$
3029
31- ### <span data-id =" selfSignup " >Enable Self Signup</span >
30+ $$ section
31+ ### Enable Self Signup $(id="selfSignup")
3232
3333- **Definition:** Allows users to automatically create accounts on first login.
3434- **Options:** Enabled | Disabled
3535- **Example:** Enabled
3636- **Why it matters:** Controls whether new users can join automatically or need manual approval.
3737- **Note:** Disable for stricter control over user access.
38+ $$
3839
39- ### <span data-id =" clientId " >Client ID</span >
40+ $$ section
41+ ### Client ID $(id="clientId")
4042
4143- **Definition:** Application (client) ID assigned to your app in Auth0.
4244- **Example:** abc123def456ghi789jkl012mno345pqr
4345- **Why it matters:** Auth0 uses this to identify your application during authentication.
4446- **Note:** Found in Auth0 → Applications → Your app → Overview → Application (client) ID
47+ $$
4548
46- ### <span data-id =" callbackUrl " >Callback URL</span >
49+ $$ section
50+ ### Callback URL $(id="callbackUrl")
4751
4852- **Definition:** Redirect URI where Auth0 sends authentication responses.
4953- **Example:** https://yourapp.company.com/callback
5054- **Why it matters:** Must match exactly what's configured in Auth0, or authentication will fail.
5155- **Note:**
5256 - Must be registered in Auth0 → Applications → Authentication → Redirect URIs
5357 - Always use HTTPS in production
58+ $$
5459
55- ### <span data-id =" authority " >Authority</span >
60+ $$ section
61+ ### Authority $(id="authority")
5662
5763- **Definition:** Auth0 endpoint that issues tokens for your tenant.
5864- **Example:** https://dev-abc123.us.auth0.com/your-auth0-domain
5965- **Why it matters:** Tells OpenMetadata which Auth0 tenant to authenticate against.
6066- **Note:**
6167 - Replace `your-auth0-domain` with your actual Auth0 tenant ID
6268 - For multi-tenant apps, you can use `common` instead of tenant ID
69+ $$
6370
64- ### <span data-id =" publicKey " >Public Key URLs</span >
71+ $$ section
72+ ### Public Key URLs $(id="publicKey")
6573
6674- **Definition:** List of URLs where Auth0 publishes its public keys for token verification.
6775- **Example:** ["https://dev-abc123.us.auth0.com/common/discovery/v2.0/keys"]
6876- **Why it matters:** Used to verify JWT token signatures from Auth0.
6977- **Note:** Usually auto-discovered from the discovery URI, rarely needs manual configuration
78+ $$
7079
71- ### <span data-id =" principals " >JWT Principal Claims</span >
80+ $$ section
81+ ### JWT Principal Claims $(id="principals")
7282
7383> ⚠️ **CRITICAL WARNING**: Incorrect claims will **lock out ALL users including admins**!
7484> - These claims MUST exist in JWT tokens from Auth0
@@ -82,8 +92,10 @@ Auth0 Active Directory (Auth0) SSO enables users to log in with their Auth0 acco
8292- **Why it matters:** Determines which claim from the JWT token identifies the user.
8393- **Note:** Common Auth0 claims: email, name, sub, nickname
8494 - Order matters; first matching claim is used
95+ $$
8596
86- ### <span data-id =" jwtPrincipalClaimsMapping " >JWT Principal Claims Mapping</span >
97+ $$ section
98+ ### JWT Principal Claims Mapping $(id="jwtPrincipalClaimsMapping")
8799
88100- **Definition:** Maps JWT claims to OpenMetadata user attributes. (Overrides jwtPrincipalClaims if set)
89101- **Example:** ["email:email", "username:preferred_username"]
@@ -94,8 +106,10 @@ Auth0 Active Directory (Auth0) SSO enables users to log in with their Auth0 acco
94106 - Only `username` and `email` keys are allowed; no other keys are permitted
95107 - If validation fails, errors will be displayed on this specific field
96108- **Important:** JWT Principal Claims Mapping is **rarely needed** for most Auth0 configurations. The default JWT Principal Claims (`email`, `name`, `sub`) handle user identification correctly. Only configure this if you have specific custom claim requirements.
109+ $$
97110
98- ### <span data-id =" jwtTeamClaimMapping " >JWT Team Claim Mapping</span >
111+ $$ section
112+ ### JWT Team Claim Mapping $(id="jwtTeamClaimMapping")
99113
100114- **Definition:** Auth0 claim or attribute containing team/department information for automatic team assignment.
101115- **Example:** "department", "groups", "organization", or custom user metadata fields
@@ -121,15 +135,19 @@ Auth0 Active Directory (Auth0) SSO enables users to log in with their Auth0 acco
121135## OIDC Configuration (Confidential Client Only)
122136
123137These fields are only shown when Client Type is set to **Confidential**.
138+ $$
124139
125- ### <span data-id =" id " >OIDC Client ID</span >
140+ $$ section
141+ ### OIDC Client ID $(id="id")
126142
127143- **Definition:** Application (client) ID for OIDC authentication with Auth0.
128144- **Example:** abc123def456ghi789jkl012mno345pqr
129145- **Why it matters:** Identifies your application to Auth0 in OIDC flows.
130146- **Note:** Same as the Client ID in Auth0 app registration
147+ $$
131148
132- ### <span data-id =" clientSecret " >OIDC Client Secret</span >
149+ $$ section
150+ ### OIDC Client Secret $(id="clientSecret")
133151
134152- **Definition:** Secret key for confidential client authentication with Auth0.
135153- **Example:** abc123def456ghi789jkl012mno345pqr678st
@@ -138,70 +156,85 @@ These fields are only shown when Client Type is set to **Confidential**.
138156 - Generate in Auth0 → Applications → Certificates & secrets
139157 - Store securely and rotate regularly
140158 - Only shown for Confidential client type
159+ $$
141160
142- ### <span data-id =" scopes " >OIDC Request Scopes</span >
161+ $$ section
162+ ### OIDC Request Scopes $(id="scopes")
143163
144164- **Definition:** Permissions requested from Auth0 during authentication.
145165- **Default:** openid email profile
146166- **Example:** openid email profile User.Read
147167- **Why it matters:** Determines what user information OpenMetadata can access.
148168- **Note:** `openid email profile` are typically sufficient for most use cases
169+ $$
149170
150- ### <span data-id =" discoveryUri " >OIDC Discovery URI</span >
171+ $$ section
172+ ### OIDC Discovery URI $(id="discoveryUri")
151173
152174- **Definition:** Auth0's OpenID Connect metadata endpoint.
153175- **Example:** https://dev-abc123.us.auth0.com/your-auth0-domain/v2.0/.well-known/openid-configuration
154176- **Why it matters:** Allows OpenMetadata to automatically discover Auth0's OIDC endpoints.
155177- **Note:** Replace `your-auth0-domain` with your actual tenant ID
178+ $$
156179
157- ### <span data-id =" useNonce " >OIDC Use Nonce</span >
180+ $$ section
181+ ### OIDC Use Nonce $(id="useNonce")
158182
159183- **Definition:** Security feature to prevent replay attacks in OIDC flows.
160184- **Default:** false
161185- **Example:** false
162186- **Why it matters:** Enhances security by ensuring each authentication request is unique.
163187- **Note:** Can be enabled for additional security if your provider supports it
188+ $$
164189
165-
166-
167- ### <span data-id =" disablePkce " >OIDC Disable PKCE</span >
190+ $$ section
191+ ### OIDC Disable PKCE $(id="disablePkce")
168192
169193- **Definition:** Whether to disable Proof Key for Code Exchange (security extension).
170194- **Default:** false
171195- **Example:** false
172196- **Why it matters:** PKCE adds security to the authorization code flow.
173197- **Note:** Should typically be left enabled (false) for security
198+ $$
174199
175- ### <span data-id =" maxClockSkew " >OIDC Max Clock Skew</span >
200+ $$ section
201+ ### OIDC Max Clock Skew $(id="maxClockSkew")
176202
177203- **Definition:** Maximum allowed time difference between systems when validating tokens.
178204- **Example:** 0 (seconds)
179205- **Why it matters:** Prevents token validation failures due to minor time differences.
180206- **Note:** Usually 0 is fine unless you have significant clock skew issues
207+ $$
181208
182- ### <span data-id =" clientAuthenticationMethod " >OIDC Client Authentication Method</span >
209+ $$ section
210+ ### OIDC Client Authentication Method $(id="clientAuthenticationMethod")
183211
184212- **Definition:** Method used to authenticate the client with Auth0.
185213- **Default:** client_secret_post (automatically configured)
186214- **Why it matters:** OpenMetadata uses `client_secret_post` which is supported by Auth0.
187215- **Note:** This field is hidden and automatically configured. Auth0 supports both `client_secret_post` and `client_secret_basic`.
216+ $$
188217
189- ### <span data-id =" tokenValidity " >OIDC Token Validity</span >
218+ $$ section
219+ ### OIDC Token Validity $(id="tokenValidity")
190220
191221- **Definition:** How long (in seconds) the issued tokens remain valid.
192222- **Default:** 0 (use provider default)
193223- **Example:** 3600 (1 hour)
194224- **Why it matters:** Controls token lifetime and security vs usability balance.
225+ $$
195226
196- ### <span data-id =" customParams " >OIDC Custom Parameters</span >
227+ $$ section
228+ ### OIDC Custom Parameters $(id="customParams")
197229
198230- **Definition:** Additional parameters to send in OIDC requests.
199231- **Example:** {"prompt": "select_account", "domain_hint": "company.com"}
200232- **Why it matters:** Allows customization of Auth0 authentication behavior.
201233- **Note:** Common parameters include `prompt`, `domain_hint`, `login_hint`
234+ $$
202235
203-
204- ### < span data-id = " callbackUrl " > OIDC Callback URL / Redirect URI</ span >
236+ $$ section
237+ ### OIDC Callback URL / Redirect URI $(id="callbackUrl")
205238
206239- **Definition:** URL where Auth0 redirects after authentication.
207240- **Auto-Generated:** This field is automatically populated as `{your-domain}/callback`.
@@ -211,15 +244,19 @@ These fields are only shown when Client Type is set to **Confidential**.
211244 - **This field is read-only** - it cannot be edited
212245 - **Copy this exact URL** and add it to Auth0's allowed redirect URIs list
213246 - Format is always: `{your-domain}/callback`
247+ $$
214248
215- ### <span data-id =" maxAge " >OIDC Max Age</span >
249+ $$ section
250+ ### OIDC Max Age $(id="maxAge")
216251
217252- **Definition:** Maximum authentication age (in seconds) before re-authentication is required.
218253- **Example:** 3600
219254- **Why it matters:** Controls how often users must re-authenticate.
220255- **Note:** Leave empty for no specific max age requirement
256+ $$
221257
222- ### <span data-id =" prompt " >OIDC Prompt</span >
258+ $$ section
259+ ### OIDC Prompt $(id="prompt")
223260
224261- **Definition:** Controls Auth0's authentication prompts.
225262- **Options:** none | login | consent | select_account
@@ -229,8 +266,10 @@ These fields are only shown when Client Type is set to **Confidential**.
229266 - `login`: Always prompt for credentials
230267 - `consent`: Prompt for permissions
231268 - `select_account`: Show account picker
269+ $$
232270
233- ### <span data-id =" sessionExpiry " >OIDC Session Expiry</span >
271+ $$ section
272+ ### OIDC Session Expiry $(id="sessionExpiry")
234273
235274- **Definition:** How long (in seconds) user sessions remain valid.
236275- **Default:** 604800 (7 days)
@@ -239,29 +278,37 @@ These fields are only shown when Client Type is set to **Confidential**.
239278- **Note:** Only applies to confidential clients
240279
241280## Authorizer Configuration
281+ $$
242282
243- ### <span data-id =" adminPrincipals " >Admin Principals</span >
283+ $$ section
284+ ### Admin Principals $(id="adminPrincipals")
244285
245286- **Definition:** List of user principals who will have admin access.
246287- **Example:** ["admin", "superuser"]
247288- **Why it matters:** These users will have full administrative privileges in OpenMetadata.
248289- **Note:** Use usernames (NOT email addresses) - these are derived from the email prefix (part before @)
290+ $$
249291
250- ### <span data-id =" principalDomain " >Principal Domain</span >
292+ $$ section
293+ ### Principal Domain $(id="principalDomain")
251294
252295- **Definition:** Default domain for user principals.
253296- **Example:** company.com
254297- **Why it matters:** Used to construct full user principals when only username is provided.
255298- **Note:** Typically your organization's primary domain
299+ $$
256300
257- ### <span data-id =" enforcePrincipalDomain " >Enforce Principal Domain</span >
301+ $$ section
302+ ### Enforce Principal Domain $(id="enforcePrincipalDomain")
258303
259304- **Definition:** Whether to enforce that all users belong to the principal domain.
260305- **Default:** false
261306- **Example:** true
262307- **Why it matters:** Adds an extra layer of security by restricting access to users from specific domains.
308+ $$
263309
264- ### <span data-id =" allowedDomains " >Allowed Domains</span >
310+ $$ section
311+ ### Allowed Domains $(id="allowedDomains")
265312
266313- **Definition:** List of email domains that are permitted to access OpenMetadata.
267314- **Example:** ["company.com", "partner-company.com"]
@@ -271,11 +318,14 @@ These fields are only shown when Client Type is set to **Confidential**.
271318 - When `enforcePrincipalDomain` is enabled, only users with email addresses from these domains can access OpenMetadata
272319 - Leave empty or use single `principalDomain` if you only have one Auth0 tenant
273320 - Useful when your Auth0 tenant contains users from multiple domains
321+ $$
274322
275- ### <span data-id =" enableSecureSocketConnection " >Enable Secure Socket Connection</span >
323+ $$ section
324+ ### Enable Secure Socket Connection $(id="enableSecureSocketConnection")
276325
277326- **Definition:** Whether to use SSL/TLS for secure connections.
278327- **Default:** false
279328- **Example:** true
280329- **Why it matters:** Ensures encrypted communication for security.
281330- **Note:** Should be enabled in production environments
331+ $$
0 commit comments