Auth0
- Ory Console
- Ory CLI
Follow these steps to add Auth0 as a social sign-in provider to your project using the Ory Console:
- 
Sign in to Ory Console and select Social Sign-in. 
- 
Click the switch next to the Auth0 logo to start the configuration. 
- 
Copy the Redirect URI and save it for later use. 
- 
Create an Auth0 Application for your Auth0 Tenant, noting the following points: - Choose the application type to be Regular Web Applications.
- Paste the saved Redirect URI from Ory into the Allowed Callback URLs field in the Settings tab of the registered application.
 
- 
Go to the Settings tab of the registered application on the Auth0 dashboard and copy the following data to the corresponding fields in the form in the Ory Console: - Client ID
- Client Secret
 
- 
Go to the Advanced Settings then Endpoints and copy the Auth0 top-level domain (typically https://myAuth0Tenant.auth0.com) to the Tenant URL field of the form in the Ory Console.
- 
In the Scopes field of the form in the Ory Console, add the following scopes: - openid
- profile
- email
 
- 
In the Data Mapping field of the form in the Ory Console, add the following Jsonnet code snippet, which maps the desired claims to the Ory Identity schema: local claims = {
 email_verified: false,
 } + std.extVar('claims');
 {
 identity: {
 traits: {
 // Allowing unverified email addresses enables account
 // enumeration attacks, if the value is used for
 // verification or as a password login identifier.
 //
 // Therefore we only return the email if it (a) exists and (b) is marked verified
 // by Auth0.
 [if 'email' in claims && claims.email_verified then 'email' else null]: claims.email,
 username: claims.nickname,
 },
 },
 }infoAuth0 returns only the subandsub_legacyclaims in theid_token. Ory makes a request to Auth0's /userinfo API and adds the user info tostd.extVar('claims').<JsonnetWarning format="Jsonnet code snippets" use="data mapping" />
- 
Click Save Configuration. 
Follow these steps to add Auth0 as a social sign-in provider to your project using the Ory CLI:
- 
In the created app, set the redirect URI to: https://{project.slug}.projects.oryapis.com/self-service/methods/oidc/callback/auth0
- 
Create a Jsonnet code snippet to map the desired claims to the Ory Identity schema. local claims = {
 email_verified: false,
 } + std.extVar('claims');
 {
 identity: {
 traits: {
 // Allowing unverified email addresses enables account
 // enumeration attacks, if the value is used for
 // verification or as a password login identifier.
 //
 // Therefore we only return the email if it (a) exists and (b) is marked verified
 // by Auth0.
 [if 'email' in claims && claims.email_verified then 'email' else null]: claims.email,
 username: claims.nickname,
 },
 },
 }infoAuth0 returns only the subandsub_legacyclaims in theid_token. Ory makes a request to Auth0's /userinfo API and adds the user info tostd.extVar('claims').<JsonnetWarning format="Jsonnet code snippets" use="data mapping" />
- 
Encode the Jsonnet snippet with Base64 or host it under an URL accessible to Ory Network. cat your-data-mapping.jsonnet | base64
- 
Download the Ory Identities config from your project and save it to a file: ## List all available projects
 ory list projects
 ## Get config
 ory get identity-config {project-id} --format yaml > identity-config.yaml
- 
Add the social sign-in provider configuration to the downloaded config. Add the Jsonnet snippet with mappings as a Base64 string or provide an URL to the file. selfservice:
 methods:
 oidc:
 config:
 providers:
 - client_id: .... # Replace this with the OAuth2 Client ID provided by Auth0
 client_secret: .... # Replace this with the OAuth2 Client Secret provided by Auth0
 id: auth0 # this is `<provider-id>` in the Authorization callback URL. DO NOT CHANGE IT ONCE SET!
 mapper_url: "base64://{YOUR_BASE64_ENCODED_JSONNET_HERE}"
 # Alternatively, use an URL:
 # mapper_url: https://storage.googleapis.com/abc-cde-prd/9cac9717f007808bf17f22ce7f4295c739604b183f05ac4afb4
 issuer_url: .... # Replace this with the endpoint of the Auth0 tenant.
 provider: auth0
 scope:
 - openid
 - profile
 - email
 enabled: true
- 
Update the Ory Identities configuration using the file you worked with: ory update identity-config {project-id} --file identity-config.yaml
Troubleshooting
When you add a social sign-in provider, you can encounter common problems such as:
- Redirect URI mismatch
- Redirect loops during registration
- Domain verification issues
To troubleshoot those issues, read Social sign-in troubleshooting.
Requested url does not match any rules
If you see this error after clicking on "Sign in with Auth0", make sure that the "Tenant URL"/issuer_url is set correctly.