> ## 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 usar Actions y SDK con organizaciones de Auth0.

# Desarrollo personalizado con organizaciones

Puede ampliar las capacidades de Auth0 mediante los metadatos de [organización](/es/docs/manage-users/organizations/organizations-overview) y Actions, o usar nuestras API y nuestros SDK para crear paneles de administración de organizaciones para sus usuarios.

<Card title="La disponibilidad varía según el plan de Auth0">
  Su plan de Auth0 o acuerdo personalizado determina si esta funcionalidad está disponible. Para obtener más información, consulte [Pricing](https://auth0.com/pricing).
</Card>

<div id="extensibility">
  ## Extensibilidad
</div>

Las organizaciones admiten nuestros puntos de extensibilidad, por lo que puede definir propiedades en los metadatos de la organización y exponer esos datos a [Actions](/es/docs/customize/actions). Esto le permite personalizar funciones para clientes o aplicaciones concretos; por ejemplo, puede ejecutar lógica personalizada en Actions para determinados clientes según su plan de suscripción, almacenando esa información en los metadatos de la organización.

<div id="actions-event-object">
  ### Objeto de evento de Actions
</div>

El objeto de evento de Action almacena información contextual sobre la transacción de autenticación en curso, como la dirección IP, la aplicación o la ubicación del usuario.

Si cambia el contenido del token mediante el objeto `event` dentro de una Action, los cambios estarán disponibles en los tokens una vez que todas las Actions hayan terminado de ejecutarse.

<div id="sdks">
  ## SDKs
</div>

Para permitir que los miembros gestionen sus organizaciones por sí mismos, puede asignarles roles y usar nuestra API y nuestros SDK para crear paneles en sus productos. Los administradores pueden configurar el <Tooltip tip="Inicio de sesión único (SSO): servicio que, después de que un usuario inicia sesión en una aplicación, le inicia sesión automáticamente en otras aplicaciones." cta="Ver glosario" href="/es/docs/glossary?term=Single+Sign-On">inicio de sesión único</Tooltip> (SSO), invitar usuarios a organizaciones, asignar miembros a organizaciones, asignar roles a los miembros, entre otras acciones.

A continuación, se describen algunas tareas de ejemplo que quizá desee realizar con organizaciones mediante los SDK.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Los ejemplos siguientes hacen referencia al claim `org_id`, disponible de forma predeterminada en los tokens de ID y de acceso. Sin embargo, puede configurar su inquilino para que también admita el uso de nombres de organización en la Authentication API. Esto hace que los tokens contengan tanto el claim `org_id` como el claim `org_name`. Si está presente, valide el claim `org_name` además de `org_id` para asegurarse de que los valores recibidos correspondan a una entidad de confianza.

  En general, usar identificadores de organización es el método preferido para validar tokens. Sin embargo, los nombres de organización pueden usarse si son más adecuados para su caso de uso. Para comprender las posibles implicaciones de usar nombres de organización para validar tokens, consulte [Usar nombres de organización en la Authentication API](/es/docs/manage-users/organizations/configure-organizations/use-org-name-authentication-api).
</Callout>

<div id="i-want-users-to-log-in-to-a-specified-organization">
  ### Quiero que los usuarios inicien sesión en una organización específica
</div>

Al definir un nuevo cliente, pasa el ID de la organización en un parámetro `organization`. Después, en el callback, asegúrate de que la organización devuelta en el <Tooltip tip="token de ID: Credencial destinada al propio cliente, en lugar de usarse para acceder a un recurso." cta="Ver glosario" href="/es/docs/glossary?term=ID+token">token de ID</Tooltip> sea la misma que se envió en la solicitud a `/authorize`, validando el claim `org_id` del mismo modo que se validan otros claims, como `exp` y `nonce`.

Para obtener más información, lee:

* [Añadir inicio de sesión con el flujo de código de autorización](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/add-login-auth-code-flow)
* [Llamar a tu API con el flujo de código de autorización](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow)
* [Añadir inicio de sesión con el flujo de código de autorización con PKCE](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/add-login-using-the-authorization-code-flow-with-pkce)
* [Llamar a tu API con el flujo de código de autorización con PKCE](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)
* [Añadir inicio de sesión con el flujo implícito con Form Post](/es/docs/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post/add-login-using-the-implicit-flow-with-form-post)
* [Llamar a tu API con el flujo híbrido](/es/docs/get-started/authentication-and-authorization-flow/hybrid-flow/call-api-hybrid-flow)
* [Personalizar el tiempo de espera de inactividad de la sesión según la organización](/es/docs/manage-users/sessions/manage-sessions-actions)

<div id="from-my-application-i-want-to-get-the-organization-to-which-the-authenticated-user-logged-in">
  ### Desde mi aplicación, quiero obtener la organización con la que inició sesión el usuario autenticado
</div>

Si el usuario se autenticó mediante una organización, el id de la organización aparecerá en la claim `org_id` del token de ID. Con el SDK para SPA de Auth0, se puede obtener de la siguiente manera:

`const { org_id } = await client.getIdTokenClaims();`

<div id="from-my-api-i-want-to-get-the-organization-with-which-the-access-token-was-issued">
  ### Desde mi API, quiero obtener la organización con la que se emitió el token de acceso
</div>

Si el usuario se autenticó a través de una organización y se especificó una <Tooltip tip="Audiencia: identificador único de la audiencia de un token emitido. Se denomina aud en un token; su valor contiene el ID de una aplicación (ID de cliente) para un ID Token o de una API (Identificador de API) para un Token de acceso." cta="Ver glosario" href="/es/docs/glossary?term=audience">audiencia</Tooltip>, el <Tooltip tip="Audiencia: identificador único de la audiencia de un token emitido. Se denomina aud en un token; su valor contiene el ID de una aplicación (ID de cliente) para un ID Token o de una API (Identificador de API) para un Token de acceso." cta="Ver glosario" href="/es/docs/glossary?term=access+token">token de acceso</Tooltip> será un <Tooltip tip="JSON Web Token (JWT): formato estándar de ID Token (y, a menudo, también de Token de acceso) utilizado para representar reclamaciones de forma segura entre dos partes." cta="Ver glosario" href="/es/docs/glossary?term=JWT">JWT</Tooltip> y contendrá la claim `org_id` con el ID de la organización en la que el usuario inició sesión.

Esto puede validarse junto con las demás claims en el backend, como en el siguiente ejemplo en Ruby:

```ruby lines theme={null}
class JsonWebToken
  def self.verify(token)
    decoded = JWT.decode(token, nil,
               true, # Verificar la firma de este token
               algorithms: 'RS256',
               iss: 'https://YOUR_DOMAIN/',
               verify_iss: true,
               aud: Rails.application.secrets.auth0_api_audience,
               verify_aud: true) do |header|
      jwks_hash[header['kid']]
    end

    // Recuperar el valor del ID de organización del token decodificado
    org = decoded[0]['org_id']
  end
end
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  **Encuentre su dominio de Auth0**

  Su dominio de Auth0 es el nombre de su inquilino, su subdominio regional (a menos que su inquilino esté en la región de EE. UU. y se haya creado antes de junio de 2020) y `.auth0.com`. Por ejemplo, si el nombre de su inquilino fuera `travel0`, el nombre de su dominio de Auth0 sería `travel0.us.auth0.com`. (Si su inquilino estuviera en EE. UU. y se hubiera creado antes de junio de 2020, entonces el nombre de su dominio sería `https://travel0.auth0.com`.)

  Si usa dominios personalizados, este debe ser el nombre de su dominio personalizado.
</Callout>

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

* [Comprender cómo funcionan las organizaciones de Auth0](/es/docs/manage-users/organizations/organizations-overview)
* [Crear su primera organización](/es/docs/manage-users/organizations/create-first-organization)
* [Trabajar con tokens y organizaciones](/es/docs/manage-users/organizations/using-tokens)
* [Configurar organizaciones](/es/docs/manage-users/organizations/configure-organizations)
* [Auth0 Actions](/es/docs/customize/actions)
