Saltar al contenido principal
Para leer claims personalizados en los tokens de acceso y , debes usar (JWT) y especificar una (aud) en un flujo de inicio de sesión OIDC. Para obtener más información, consulta Access Tokens. Al configurar claims personalizados en JWT, debes evitar colisiones. Para evitar que tus claims personalizados entren en conflicto con claims reservados o con claims de otros recursos, asígnales un nombre resistente a colisiones. Auth0 recomienda usar un formato con espacio de nombres.
Auth0 permite claims con y sin espacio de nombres, pero se aplican ciertas restricciones (consulta Restricciones generales). Para evitar colisiones de nombres, recomendamos usar claims con espacio de nombres. En caso de colisión, la transacción no fallará, pero tu claim personalizado no se agregará a tus tokens.

Restricciones generales

Auth0 aplica las siguientes restricciones a los claims personalizados:
  • La carga útil de los claims personalizados tiene un límite máximo de 100 KB
  • Los claims estándar de OpenID y los claims que Auth0 utiliza internamente no se pueden personalizar ni modificar
  • Los con una audiencia de API de Auth0, excluido el endpoint /userinfo, no pueden incluir claims personalizados privados sin espacio de nombres
  • Solo se pueden agregar a los tokens de acceso los claims especificados del perfil de usuario de OIDC
Los siguientes claims están sujetos a las restricciones de Auth0:
  • acr
  • act
  • active
  • amr
  • at_hash
  • ath
  • attest
  • aud
  • auth_time
  • authorization_details
  • azp
  • c_hash
  • client_id
  • cnf
  • cty
  • dest
  • entitlements
  • events
  • exp
  • groups
  • gty
  • htm
  • htu
  • iat
  • internalService
  • iss
  • jcard
  • jku
  • jti
  • jwe
  • jwk
  • kid
  • may_act
  • mky
  • nbf
  • nonce
  • object_id
  • org_id
  • org_name
  • orig
  • origid
  • permissions
  • roles
  • rph
  • s_hash
  • sid
  • sip_callid
  • sip_cseq_num
  • sip_date
  • sip_from_tag
  • sip_via_branch
  • sub
  • sub_jwk
  • toe
  • txn
  • typ
  • uuid
  • vot
  • vtm
  • x5t#S256

Claims no restringidos

Puedes crear claims para información sensible del usuario a fin de mejorar el perfil de usuario y enriquecer la experiencia de uso. Tu aplicación obtiene estos claims de los tokens de ID. Para obtener más información sobre cómo usar claims no restringidos, consulta ID Tokens y ten en cuenta Token Best Practices si los utilizas. Los siguientes claims solo están sujetos a restricciones generales:
  • address
  • birthdate
  • email
  • email_verified
  • family_name
  • gender
  • given_name
  • locale
  • middle_name
  • name
  • nickname
  • phone_number
  • phone_number_verified
  • picture
  • preferred_username
  • profile
  • updated_at
  • website
  • zoneinfo

Directrices para espacios de nombres

El URN de Auth0 urn:auth0 no puede usarse como identificador de espacio de nombres.
Usa las siguientes directrices para los identificadores de espacio de nombres:
  • Usa cualquier URL HTTP o HTTPS que no sea de Auth0 como identificador de espacio de nombres. Los dominios de Auth0 no pueden usarse como identificadores de espacio de nombres e incluyen:
    • auth0.com
    • webtask.io
    • webtask.run
  • Usa como identificador de espacio de nombres una URL que controles; así evitas el riesgo de que otra persona esté usando el mismo espacio de nombres. La URL del espacio de nombres no tiene que apuntar a un recurso real. Solo se usa como identificador; no se invocará.
  • Comienza la URL con http:// o https://.
  • Como alternativa, también puedes usar identificadores de espacio de nombres basados en URN si usas una API personalizada. En ese caso, el URN de Auth0 urn:auth0 está reservado y no puede usarse como identificador de espacio de nombres.
  • Crea varios espacios de nombres, según sea necesario.
Una vez que hayas elegido tu espacio de nombres, agrégale el claim para crear un claim con espacio de nombres, que puede añadirse a un token. Por ejemplo: http://www.example.com/favorite_color

Pautas sin espacio de nombres

Usa las siguientes pautas para los claims personalizados sin espacio de nombres:
  • A menos que sea absolutamente necesario para tu aplicación, usa claims personalizados públicos con espacio de nombres que sean resistentes a colisiones.
  • Crea claims con nombres significativos y resistentes a colisiones. Por ejemplo, usa employee_id en lugar de e_id.
  • Mantén los nombres y valores de los claims lo más ligeros posible y pasa solo los datos estrictamente necesarios para tu aplicación.
  • Evita asignar cargas útiles pesadas a los claims personalizados.
Para ver más ejemplos de claims personalizados añadidos a un token, consulta Casos de uso de ejemplo: Scopes and Claims.

Crear claims personalizados

Usa las Actions de Auth0 para crear claims personalizados. El objeto api te permite usar el método setCustomClaim en los tokens de acceso o de ID.

Ejemplo

exports.onExecuteCredentialsExchange = async (event, api) => {
  api.accessToken.setCustomClaim('myClaim', 'this is a private, non namespaced claim');
};

Más información