> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Aprende a crear nombres resistentes a colisiones para claims personalizados.

# Crear claims personalizados

Para leer claims personalizados en los tokens de acceso y <Tooltip tip="ID Token: Credencial destinada al propio cliente, en lugar de acceder a un recurso." cta="Ver glosario" href="/es/docs/glossary?term=ID+tokens">tokens de ID</Tooltip>, debes usar <Tooltip tip="ID Token: Credencial destinada al propio cliente, en lugar de acceder a un recurso." cta="Ver glosario" href="/es/docs/glossary?term=JSON+Web+Tokens">JSON Web Tokens</Tooltip> (JWT) y especificar una <Tooltip tip="JSON Web Token (JWT): Formato estándar de ID Token (y a menudo también formato de Access Token) utilizado para representar claims de forma segura entre dos partes." cta="Ver glosario" href="/es/docs/glossary?term=audience">audience</Tooltip> (`aud`) en un flujo de inicio de sesión OIDC. Para obtener más información, consulta [Access Tokens](/es/docs/secure/tokens/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.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 permite claims con y sin espacio de nombres, pero se aplican ciertas restricciones (consulta [Restricciones generales](/es/docs/secure/tokens/json-web-tokens/create-custom-claims#general-restrictions)). 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.
</Callout>

<div id="general-restrictions">
  ## Restricciones generales
</div>

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](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) y los claims que Auth0 utiliza internamente no se pueden personalizar ni modificar
* Los <Tooltip tip="Token de acceso: credencial de autorización, en forma de cadena opaca o JWT, que se utiliza para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+tokens">tokens de acceso</Tooltip> 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`

<div id="non-restricted-claims">
  ### Claims no restringidos
</div>

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](/es/docs/secure/tokens/id-tokens) y ten en cuenta [Token Best Practices](/es/docs/secure/tokens/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`

<div id="namespaced-guidelines">
  ## Directrices para espacios de nombres
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  El URN de Auth0 `urn:auth0` no puede usarse como identificador de espacio de nombres.
</Callout>

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`

<div id="non-namespaced-guidelines">
  ## Pautas sin espacio de nombres
</div>

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](/es/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims).

<div id="create-custom-claims">
  ## Crear claims personalizados
</div>

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.

<div id="example">
  ### Ejemplo
</div>

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

<div id="learn-more">
  ## Más información
</div>

* [Claims de JSON Web Token](/es/docs/secure/tokens/json-web-tokens/json-web-token-claims)
* [Ámbitos de OpenID Connect](/es/docs/get-started/apis/scopes/openid-connect-scopes)
