aud
or audience
value (for an API registered in your tenant) are considered unregistered scopes.
With this change, the API scope evaluation will include any custom scopes requested during user authentication or injected through extensibility, such as Rules. This evaluation will validate that all scopes are registered, returning an error if any are not registered.
/userinfo
endpoint. Previously, Auth0 allowed namespaced claims on access and via extensibility code (Rules / Hooks / Actions). The migration to custom claims allows private, non-namespaced custom claims and OIDC user profile claims to be added to ; ID tokens currently support user profile claims and will additionally support private, non-namespaced custom claims. These claims will also be added to the Auth0 /userinfo
response. To begin the migration, read the Custom Claims Migration Guide.
If your tenant is running extensibility code (Rules / Hooks / Actions) that tries to set non-namespaced custom claims that are being ignored until this deprecation, then those claims will begin to appear on the tokens and the /userinfo
response. We recommend you review your configuration and Auth0 logs.
With the addition of non-namespaced, private claims, Auth0 is enforcing the following restrictions that could potentially affect your tenant:
/userinfo
endpoint.client_id
) of the requesting tenant as well as the tenant name in the URL domain. The tenant owning the identifier must be from the same tenant in the URL domain or the request will be rejected.
If your application or API calls any of the listed endpoints, you must configure your API calls to make sure the identifier of the requesting tenant and hostname are the same:
/oauth/token
/co/authenticate
/userinfo
/login
/oauth/revoke
/mfa/challenge
/p/<connection-type>/<ticket>
(Enterprise connection provisioning endpoint)page
and per_page
parameters. Beginning on 21 July 2020, Auth0 will display tenant logs and a migration toggle to help you prepare for this change.
GET /api/v2/clients
GET /api/v2/client-grants
GET /api/v2/grants
GET /api/v2/connections
GET /api/v2/device-crecentials
(when the type
query parameter is used)GET /api/v2/resource-servers
GET /api/v2/rules
per_page
parameter for queries that can return more than 1 result. Tenants are not affected if they are created after 21 July 2020, are not using the affected endpoints, are using the affected endpoints and passing the per_page
parameter, or are making queries that always return only 1 result. To learn more, read Migrate to Management API v2 Endpoint Paginated Queries.
returnTo
query parameter passed by to /login/callback
during the execution of the logout. If Auth0 does not have a record of a preceding call to one of these APIs, logout will complete, but redirection will not occur and an error page will be displayed to end users. To learn more, read Logout Redirects Migration Guide.
user_id
when you use the GET /api/v2/device-credentials endpoint. If your request does not provide a user_id
, it will return a 400 status code. Check the depnote
in your tenant logs to see if you are affected by this deprecation. To learn more, read Check Deprecation Errors.
Auth0 has identified tenants affected by this deprecation and contacted the administrators for those tenants. If your tenant is currently making requests without a user_id
, you should make the change as soon as possible.
email_verified
field to true in Azure AD and ADFS connections. If you used Azure AD/ADFS connections before this deprecation date, you have a tenant setting that overrides the connection setting for email verification and keeps the previous behavior.
On 18 May 2021 in Public Cloud and the June Private Cloud Release (v2106), Auth0 begins using the connection-level property for all Azure AD/ADFS connections. You should make sure all your connections are configured properly before that date. To learn more, read Email Verification for Azure AD and ADFS.
samesite
attribute set will be set to lax
sameSite=none
must be secured, otherwise they cannot be saved in the browser’s cookie jar/passwordless/start
endpoint from confidential applications when Auth0 cannot authenticate that the call is made on behalf of the application. To learn more, read Migrate to Passwordless Endpoint from Confidential Applications.Clickjacking Protection for changes
To prevent clickjacking, in cases where you render your login page in an iframe, Auth0 has added an opt-in to add headers which we strongly recommend you enable. For details, see Clickjacking Protection for Universal Login Change.
/oauth/ro
endpoint for both password and connections. You can now implement the same functionality using the /oauth/token
endpoint. To learn more, read Resource Owner Password Flow Migration.
/usernamepassword/login
and /ssodata
endpoints. These endpoints are used by Lock.js v8, v9, and v10 and Auth0.js, v6, v7, and v8, and can also be called directly from applications.
As of August 6, 2018, Auth0 has permanently disabled the Legacy Lock API. This removal of service fully mitigates the CSRF vulnerability disclosed in April 2018. This also ends the soft removal grace period that was first announced on 16 July 2018, meaning the Legacy Lock API can no longer be re-enabled.
If your Legacy Lock API migration has not yet been completed, your users may experience an outage, failed logins, or other adverse effects. You will need to complete your migration in order to restore normal functionality. Check deprecation errors to identify the source(s) of any errors in your tenant logs related to deprecations.
/usernamepassword/login
or /ssodata
endpoints directly via the API.
We recommend that applications using Universal Login update the library versions they use inside of the login page.
However, those who are using Lock or Auth0.js embedded within their applications, or are calling the affected API endpoints directly, are required to update, and applications which still use deprecated endpoints will cease to function properly after the removal of service date.
Libraries and SDKs not explicitly named here are not affected by this migration.
13.55.232.24, 13.54.254.182, 13.210.52.131, 52.62.91.160, 52.63.36.78, 52.64.84.177, 52.64.111.197, 52.64.120.184, 54.66.205.24, 54.79.46.4, 54.153.131.0
34.253.4.94, 35.156.51.163, 35.157.221.52, 52.16.193.66, 52.16.224.164, 52.28.45.240, 52.28.56.226, 52.28.184.187, 52.28.212.16, 52.29.176.99, 52.50.106.250, 52.57.230.214, 52.211.56.181, 52.213.216.142, 52.213.38.246, 52.213.74.69
/oauth/token
endpoint of our Authentication API with grant_type = "password"
, grant_type = "http://auth0.com/oauth/grant-type/password-realm"
, or grant_type = "refresh_token"
.
You could be impacted if you are currently using these exchanges and have rules defined in Dashboard. In order to ensure a smooth transition, we have disabled the rules execution on these specific exchanges for your tenant. These rules will now execute for all new customers, as well as customers who have not yet used these exchanges.
You can add logic to your rules to alter their behavior for these exchanges by checking the context.protocol
property:
oauth2-password
indicates the password (and password-realm) exchangeoauth2-refresh-token
indicates the Refresh Token exchange138.91.154.99, 54.183.64.135, 54.67.77.38, 54.67.15.170,54.183.204.205, 54.173.21.107, 54.85.173.28, 35.167.74.121, 35.160.3.103,35.166.202.113, 52.14.40.253,52.14.38.78, 52.14.17.114, 52.71.209.77, 34.195.142.251, 52.200.94.42
/continue
endpoint. The site to which the redirect goes has to capture the value of the state parameter and return it by adding it as a parameter when returning to the /continue
endpoint.
DELETE /api/v2/users
. This is similar to the endpoint to delete one user: DELETE /api/v2/users
. To prevent accidental requests to the delete all users endpoint, the url has been changed to DELETE /api/v2/allusers
. This should ensure that only intentional calls to this endpoint get made.
identities
array.
To obtain a user’s identity provider access token, you will need to make an HTTP GET call to the /api/v2/users/{user-id}
endpoint containing an API token generated with read:user_idp_tokens
scope. You will still have access to the identity provider access token in the user
argument in Auth0 rules.
identities[0].access_token
in the user profile) outside of rules to call other services from the Identity Provider (such as Facebook Graph API, Google APIs, etc.). If your tenant was created after the change the update will be done automatically.
https://{yourDomain}/
) must match the value of the iss
attribute of the ID Token being validated. If these values do not match, the response will be HTTP 400 - Bad Request
.
iss
attribute of the ID Token being validated matches your Auth0 tenant namespace: https://{yourDomain}/
. You can use jwt.io to decode the token to confirm the iss
attribute value.
no-reply@auth0user.net
). Custom Email Providers are now free. To customize the “from” address, you can switch to an Auth0-supported third-party service (Amazon SES, Mandrill, SendGrid) or another SMTP-based provider. If you already use a custom email provider, nothing will change.
jwt_configuration.secret_encoded
configuration is no longer accepted by the PATCH and POST applications endpoints.
In order to further comply with the OIDC specification, Auth0 will no longer generate or accept base64 encoded application secrets for new applications.
Existing applications with encoded secrets stored will remain intact and unchanged, but new applications will no longer use base64 encoding. The secret_encoded
flag is no longer accepted or necessary, as a result.