Configure PKCE and Claim Mapping for OIDC Connections
Configure Proof Key for Code Exchange (PKCE) and mapping templates for OpenID Connect and Okta Workforce connections.
Enterprise connections using OpenID Connect or Okta Workforce as the can support Proof Key for Code Exchange (PKCE), as well as attribute and token mapping.
Connect and Okta Workforce connections are automatically configured to support Proof Key for Code Exchange (PKCE).If your OIDC identity provider (IdP) supports PKCE through OIDC Discovery metadata, Auth0 will use the strongest algorithm available by default. For more information on OIDC Discovery metadata, review OpenID’s documentation.
Setting the pkce property to a value other than automay prevent a connection from working properly if the selected value is not supported by the identity provider.Do not set the property to disabled except when troubleshooting authentication issues.
Azure AD LimitationIf you are using an OpenID Connect connection for Azure AD, you must set pkce to s256 as the connection’s metadata does not expose the hashing algorithm used. Currently, the Azure AD Enterprise connection does not support PKCE.
OpenID Connect and Okta Workforce connections can automatically map claims received from the identity provider (IdP). You can configure this mapping through a library template provided by Auth0 or by entering your own template directly.
Mapped claims are not automatically added to an Auth0 ID token. To add claims to an ID token, see Create custom claims.
The mapping_mode property defines the method used to map incoming claims from the IdP to the Auth0 user profile. mapping_mode supports the following values:
Some claims are reserved for use by Auth0; such claims cannot be used as attribute keys for user profiles.If you set the mapping_mode property to bind_all, your IdP may attempt to map values to one or more of these restricted claims. While this does not prevent users from authenticating on your connection, values associated with restricted claims are not mapped to the Auth0 user profile.If you set mapping_mode to use_map, you can map the incoming restricted claim to a valid one:
Report incorrect code
Copy
Ask AI
"attribute_map": { "mapping_mode": "use_map", "attributes": { "amr": "{context.tokenset.amr}", // `amr` is a restricted claim and will not be mapped "federated_amr": "{context.tokenset.amr}" // `federated_amr` is not a restricted claim and will be mapped } }
The userinfo_scope property defines the scopes that Auth0 sends to the IdP’s UserInfo endpoint when requested.For example, if you want to send the standard OIDC scopes and the groups scope when requesting the UserInfo endpoint, you can do so as follows:
The attributes property is an object containing mapping information that allows Auth0 to interpret incoming claims from the IdP. Mapping information must be provided as key/value pairs.The key to the left corresponds to an Auth0 user profile attribute. The value to the right represents the incoming claim from the IdP, which can be expressed as a literal value, a dynamic context object, or a combination of both. Dynamic context objects are template expressions written in the familiar ${variable} format.
A literal value is a static value mapped to a specific profile attribute for all users on your connection.For example, if you are configuring a SalesForce OIDC connection and want to assign the same SFDC Community ID to all user profiles, you can do so as follows:
You can map dynamic values to user profile attributes by using the context object. This allows you to store unique values for individual profiles, as opposed to literal values that are static across all profiles.The context object supports the following properties:
Property
Description
context.connection
Contains the following properties:
id: The connection’s unique identifier (for example, con_4423423423432423).
strategy: The connection’s strategy (for example, oidc).
context.tokenset
Contains the following properties:
access_token: The entire validated access token sent by the IdP.
<claim name>: Any ID token claim sent by the IdP.
context.userinfo
Contains the following properties:
<claim name>: Any available claim provided by the IdP’s UserInfo endpoint.
This example demonstrates how to combine literal values and dynamic template expressions to map a complex value to an attribute on the Auth0 user profile: