Connect y las conexiones de Okta Workforce se configuran automáticamente para admitir Proof Key for Code Exchange (PKCE).Si su Proveedor de identidad (IdP) de OIDC admite PKCE mediante metadatos de descubrimiento de OIDC, Auth0 usará de forma predeterminada el algoritmo más robusto disponible. Para obtener más información sobre los metadatos de descubrimiento de OIDC, consulte la documentación de OpenID.
Establecer la propiedad pkce en un valor distinto de auto puede impedir que una conexión funcione correctamente si el valor seleccionado no es compatible con el Proveedor de identidad.No establezca la propiedad en disabled salvo para solucionar problemas de autenticación.
Limitación de Microsoft Entra IDSi usa una conexión de OpenID Connect para Microsoft Entra ID, debe establecer pkce en s256, ya que los metadatos de la conexión no exponen el algoritmo de hash utilizado. Actualmente, la conexión empresarial de Microsoft Entra ID no admite PKCE.
Las conexiones de OpenID Connect y Okta Workforce pueden asignar automáticamente los claims recibidos del proveedor de identidad (IdP). Puede configurar este mapeo mediante una plantilla de biblioteca proporcionada por Auth0 o introduciendo directamente su propia plantilla.
Los claims asignados no se agregan automáticamente a un token de ID de Auth0. Para agregar claims a un token de ID, consulte Crear claims personalizados.
Las plantillas de mapeo admiten las propiedades del objeto options.attribute_map que se enumeran a continuación. Las plantillas deben estar en formato JSON con pares clave/valor válidos.
Propiedad
¿Obligatorio?
Descripción
mapping_mode
Obligatorio
Método que se usa para mapear las claims entrantes.
userinfo_scope
Opcional
Alcances que se solicitan al IdP durante la autorización y que determinan qué claims están disponibles en el endpoint de UserInfo.
attributes
Obligatorio
Objeto que contiene los detalles de mapeo de las claims entrantes.
La propiedad mapping_mode define el método que se usa para asignar las claims entrantes del IdP al perfil del usuario de Auth0. mapping_mode admite los siguientes valores:
Valor
Descripción
use_map
Usa la plantilla proporcionada para asignar los datos.
bind_all
Copia todos los elementos de datos proporcionados por el IdP.
Auth0 reserva algunos claims para su propio uso; esos claims no pueden utilizarse como claves de atributos en los perfiles de usuario.Si establece la propiedad mapping_mode en bind_all, es posible que su IdP intente asignar valores a uno o varios de estos claims restringidos. Aunque esto no impide que los usuarios se autentiquen en su conexión, los valores asociados a claims restringidos no se asignan al perfil de usuario de Auth0.Si establece mapping_mode en use_map, puede asignar el claim restringido entrante a uno válido:
"attribute_map": { "mapping_mode": "use_map", "attributes": { "amr": "{context.tokenset.amr}", // `amr` es un claim restringido y no será mapeado "federated_amr": "{context.tokenset.amr}" // `federated_amr` no es un claim restringido y será mapeado } }
La propiedad userinfo_scope define los alcances que Auth0 incluye en la solicitud de autorización al IdP. Estos alcances determinan qué claims pone a disposición el IdP en su endpoint UserInfo. Cuando el mapa de atributos hace referencia a context.userinfo properties, Auth0 llama al endpoint UserInfo del IdP utilizando el token de acceso concedido con estos alcances.Por ejemplo, si quiere solicitar los alcances estándar de OIDC y el scope groups para que los claims de grupo estén disponibles en el endpoint UserInfo, puede configurarlo de la siguiente manera:
La propiedad attributes es un objeto que contiene información de mapeo que permite a Auth0 interpretar las claims entrantes del IdP. La información de mapeo debe proporcionarse como pares clave/valor.La clave de la izquierda corresponde a un atributo del perfil de usuario de Auth0. El valor de la derecha representa la claim entrante del IdP, que puede expresarse como un valor literal, un objeto de contexto dinámico o una combinación de ambos. Los objetos de contexto dinámico son expresiones de plantilla escritas en el formato habitual ${variable}.
Un valor literal es un valor estático asignado a un atributo de perfil específico para todos los usuarios de la conexión.Por ejemplo, si está configurando una conexión OIDC de SalesForce y quiere asignar el mismo ID de comunidad de SFDC a todos los perfiles de usuario, puede hacerlo de la siguiente manera:
Puede asignar valores dinámicos a los atributos del perfil del usuario mediante el objeto context. Esto le permite almacenar valores únicos para perfiles individuales, en lugar de valores literales que permanecen estáticos en todos los perfiles.El objeto context admite las siguientes propiedades:
Propiedad
Descripción
context.connection
Contiene las siguientes propiedades:
id: El identificador único de la conexión (por ejemplo, con_4423423423432423).
strategy: La estrategia de la conexión (por ejemplo, oidc).
context.tokenset
Contiene las siguientes propiedades:
access_token: El token de acceso validado completo enviado por el IdP.
<claim name>: Cualquier claim del token de ID enviado por el IdP.
context.userinfo
Contiene las siguientes propiedades:
<claim name>: Cualquier claim disponible proporcionado por el endpoint UserInfo del IdP.
Este ejemplo muestra cómo combinar valores literales y expresiones de plantilla dinámicas para asignar un valor complejo a un atributo del perfil del usuario de Auth0: