> ## 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.

> Conozca el efecto de la configuración de aplicación compatible con OIDC en el flujo de autenticación.

# Adopte la autenticación compatible con OIDC

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****ENMASCARADO*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

Auth0 es un [proveedor certificado de OpenID Connect (OIDC)](http://openid.net/certification/). Como parte de los esfuerzos de Auth0 por mejorar la seguridad y la interoperabilidad basada en estándares, implementamos nuevas funcionalidades exclusivamente en flujos de autenticación que cumplen estrictamente las [especificaciones de OIDC](http://openid.net/specs/openid-connect-core-1_0.html).

Explicaremos las diferencias entre el pipeline compatible con OIDC y los pipelines heredados, y ofreceremos sugerencias sobre cómo adaptar sus aplicaciones existentes. Esta información está dirigida a desarrolladores y administradores de TI que gestionan integraciones de Auth0 en sus aplicaciones mediante el [marco de autorización OAuth 2.0](/es/docs/authenticate/protocols/oauth). No es aplicable si usa <Tooltip tip="Security Assertion Markup Language (SAML): Protocolo estandarizado que permite a dos partes intercambiar información de autenticación sin una contraseña." cta="Ver glosario" href="/es/docs/glossary?term=SAML">SAML</Tooltip> o WS-Federation. Todos los flujos de autenticación se describen mediante solicitudes HTTP, en lugar de hacerlo en el contexto de una implementación concreta de lenguaje o biblioteca.

Todas las funcionalidades nuevas están dirigidas únicamente al pipeline compatible con OIDC, y todas las versiones heredadas de los SDK de Auth0 están obsoletas, no reciben actualizaciones para nuevas funcionalidades ni para problemas de seguridad no críticos, y con el tiempo dejarán de estar disponibles. Además, toda la documentación, las bibliotecas y los ejemplos fuera de esta guía se aplican únicamente al pipeline compatible con OIDC. Por ello, recomendamos encarecidamente adoptar el pipeline compatible con OIDC, incluso si no necesita aprovechar ninguna funcionalidad nueva en el futuro inmediato.

<div id="apply-the-oidc-conformant-pipeline">
  ## Aplicar la pipeline compatible con OIDC
</div>

Según la antigüedad de su inquilino, puede tener distintas opciones para aplicar la pipeline compatible con OIDC.

<div id="new-tenants">
  ### Nuevos inquilinos
</div>

Si crea un nuevo inquilino mediante el <Tooltip tip="Auth0 Dashboard: el producto principal de Auth0 para configurar sus servicios." cta="Ver glosario" href="/es/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>, la pipeline compatible con OIDC se usa de forma predeterminada. Esta es la configuración predeterminada del Dashboard desde principios de 2019.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Es posible que haya deshabilitado manualmente la opción OIDC Conformant; en ese caso, debe seguir nuestras instrucciones para inquilinos anteriores.
</Callout>

<div id="older-tenants">
  ### Inquilinos antiguos
</div>

Si quiere aplicar al mismo tiempo todos los cambios descritos en esta guía para una aplicación concreta, de modo que pueda detectar todos los cambios incompatibles durante la configuración en lugar de en tiempo de ejecución, debe hacer lo siguiente:

1. Vaya a [Dashboard > Applications > Applications](https://manage.auth0.com/#/applications) y seleccione la aplicación que desee.
2. Desplácese hasta **Advanced Settings** y vaya a la pestaña **OAuth**.
3. Active el interruptor **OIDC Conformant** y haga clic en **Save Changes**.

Si quiere usar la pipeline compatible con OIDC para cada solicitud de autenticación y su aplicación necesita llamar a una API con un <Tooltip tip="Token de acceso: credencial de autorización, en forma de cadena opaca o JWT, que se usa para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=JWT">JWT</Tooltip> <Tooltip tip="JSON Web Token (JWT): formato estándar de ID Token (y, a menudo, de token de acceso) que se usa para representar claims de forma segura entre dos partes." cta="Ver glosario" href="/es/docs/glossary?term=access+token">token de acceso</Tooltip>, inicie la solicitud al endpoint [`/social`](https://auth0.com/docs/api/authentication#social) con un parámetro `audience`.

Si quiere usar la pipeline compatible con OIDC para cada solicitud de autenticación y su aplicación no necesita llamar a una API, use el siguiente parámetro `audience`:

export const codeExample = `https://{yourDomain}/userinfo`;

<AuthCodeBlock children={codeExample} language="http" />

<div id="differences">
  ## Diferencias
</div>

Al habilitar el pipeline compatible con OIDC, se aplican los siguientes cambios al pipeline heredado.

<div id="apis">
  ### APIs
</div>

Las aplicaciones y las API (recursos) deben definirse como entidades independientes en Auth0. Para obtener más información, consulte [Adopción compatible con OIDC: API](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-apis).

<div id="access-tokens">
  ### Tokens de acceso
</div>

* Las API deben protegerse con tokens de acceso en lugar de <Tooltip tip="ID Token: credencial destinada al propio cliente, no para acceder a un recurso." cta="Ver glosario" href="/es/docs/glossary?term=ID+tokens">tokens de ID</Tooltip>. Para obtener más información sobre las diferencias, consulta [Tokens](/es/docs/secure/tokens).
* Se puede devolver un conjunto definido de claims estándar sobre los usuarios en los ID Tokens o en la respuesta de `/userinfo`.
* Los claims personalizados deben ajustarse a un formato con nombre. Para obtener más información, consulta [Create Namespaced Custom Claims](/es/docs/secure/tokens/json-web-tokens/create-custom-claims).
* Las respuestas de `/userinfo` cumplirán con la especificación OIDC, al igual que el contenido de los tokens de ID
* Los alcances pueden usarse para solicitar claims estándar o permisos personalizados de API.

Para obtener más información, consulta [OIDC-Conformant Adoptions: Access Tokens](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-access-tokens).

<div id="authorization-flows">
  ### Flujos de autorización
</div>

* [Flujo de código de autorización](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-auth-code-flow): Existen diferencias estructurales en la solicitud de autenticación, la respuesta de autenticación, la solicitud de intercambio de código, la respuesta de intercambio de código, la estructura del ID Token y la estructura del token de acceso.
* [Flujo de credenciales de cliente](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-client-credentials-flow): Se habilitó un nuevo flujo que permite que las aplicaciones se autentiquen por sí mismas (en lugar de hacerlo en nombre de un usuario) para obtener acceso a una API de forma programática y segura.
* [Flujo implícito](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-implicit-flow): Existen diferencias estructurales en la solicitud de autenticación, la respuesta de autenticación, la estructura del ID Token y la estructura del token de acceso. En concreto:

  * `response_type=token` solo devuelve un token de acceso. Para obtener un ID Token, use `response_type=id_token` o `response_type=token id_token`.
  * Los ID Token se firmarán de forma asimétrica con RS256.
  * Se rechazarán las solicitudes de autenticación realizadas sin un parámetro nonce. Para obtener más información, consulte [Mitigue los ataques de repetición al usar el flujo implícito](/es/docs/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post/mitigate-replay-attacks-when-using-the-implicit-flow).
  * Ya no se devolverán tokens de actualización cuando se use el Flujo implícito para la autenticación.
* [Flujo de contraseña del propietario del recurso](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-rop-flow): Existen diferencias estructurales en la solicitud de autenticación, la respuesta de autenticación, la estructura del ID Token y la estructura del token de acceso. En concreto:

  * el [endpoint heredado del propietario del recurso](https://auth0.com/docs/api/authentication#database-ad-ldap-active-) está deshabilitado, lo que también deshabilita la autenticación sin contraseña para el inicio de sesión integrado desde ese endpoint. Para [implementar sin contraseña con inicio de sesión integrado](/es/docs/authenticate/login/universal-vs-embedded-login), debe usar la API Embedded Passwordless o nuestros SDK, según el tipo de aplicación.
  * el parámetro `device` ahora se considera no válido al solicitar un token de actualización con el scope `offline_access`.

<div id="delegation">
  ### Delegación
</div>

* **Obsoleto**: endpoint [`/delegation`](https://auth0.com/docs/api/authentication#delegation), excepto cuando se utiliza para obtener tokens de API de terceros.
* Las aplicaciones compatibles con OIDC no pueden ser el origen ni el destino de las solicitudes de delegación.

Para obtener más información, consulta [Adopción compatible con OIDC: Delegación](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-delegation).

<div id="endpoints">
  ### Endpoints
</div>

* **Obsoleto**: endpoint `/tokeninfo`
* **Deshabilitado**: el endpoint [`/oauth/access_token`](https://auth0.com/docs/api/authentication#post-oauth-access_token) (se usa para la autenticación social desde aplicaciones móviles nativas).
* **Obsoleto**: endpoint `/ssodata`
* **Obsoleto**: el endpoint [`/delegation`](https://auth0.com/docs/api/authentication#delegation), excepto cuando se usa para obtener tokens de API de terceros.

<div id="refresh-tokens">
  ### Tokens de actualización
</div>

* <Tooltip tip="Token de actualización: token que se usa para obtener un nuevo Token de acceso sin obligar a los usuarios a volver a iniciar sesión." cta="Ver glosario" href="/es/docs/glossary?term=Refresh+tokens">Tokens de actualización</Tooltip> ya no se devolverán al usar el Flujo implícito para la autenticación.
* Los tokens de actualización pueden usarse en aplicaciones confidenciales, pero la <Tooltip tip="Rotación de tokens de actualización: estrategia que reemplaza con frecuencia los tokens de actualización para reducir la vulnerabilidad. Con la rotación de tokens de actualización, cada vez que su aplicación intercambia un token de actualización para obtener un nuevo token de acceso, Auth0 también devuelve un nuevo token de actualización." cta="Ver glosario" href="/es/docs/glossary?term=refresh+token+rotation">rotación de tokens de actualización</Tooltip> puede aumentar la seguridad en la mayoría de los flujos y siempre debe usarse en aplicaciones públicas cuando se utiliza el Flujo de código de autorización con PKCE. Para obtener información sobre las aplicaciones confidenciales, consulte [Confidential and Public Applications](/es/docs/get-started/applications/confidential-and-public-applications). Para obtener más información sobre la rotación de tokens de actualización, consulte [Refresh Token Rotation](/es/docs/secure/tokens/refresh-tokens/refresh-token-rotation).
* Al obtener nuevos tokens, debe usar el endpoint `/oauth/token`.
* El parámetro `device` ya no es necesario al solicitar un token de actualización mediante el scope `offline_access` en las solicitudes de autenticación.

Para obtener más información, consulte [OIDC-Conformation Adoption: Refresh Tokens](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-refresh-tokens).

<div id="single-sign-on-sso">
  ### Inicio de sesión único (SSO)
</div>

* El <Tooltip tip="Inicio de sesión único (SSO): servicio que, después de que un usuario inicia sesión en una aplicación, lo inicia automáticamente en otras aplicaciones." cta="Ver glosario" href="/es/docs/glossary?term=SSO">SSO</Tooltip> solo puede realizarse desde las páginas de inicio de sesión de Auth0, lo que significa que debe usar <Tooltip tip="Universal Login: su aplicación redirige a Universal Login, alojado en el Servidor de autorización de Auth0, para verificar la identidad de un usuario." cta="Ver glosario" href="/es/docs/glossary?term=Universal+Login">Universal Login</Tooltip>.
* Para determinar si los usuarios han iniciado sesión mediante SSO, debe usar autenticación silenciosa. Para obtener más información, consulte [Configure Silent Authentication](/es/docs/authenticate/login/configure-silent-authentication).
* **Obsoleto**: el endpoint `/ssodata` y el método `getSSOData()` de `Lock/auth0.js`.

Para obtener más información, consulte [OIDC-Conformant Adoption: Single Sign-On](/es/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-sso).

<div id="additional-features">
  ### Funcionalidades adicionales
</div>

* Cree aplicaciones de terceros para sus APIs y muestre diálogos de consentimiento para la autorización. Para obtener más información, consulte [Consentimiento del usuario y aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications/user-consent-and-third-party-applications).
* Restrinja la información del perfil del usuario que se proporciona a las aplicaciones durante la autenticación. Para obtener más información, consulte [Perfiles de usuario](/es/docs/manage-users/user-accounts/user-profiles/user-profile-structure).
* Registre aplicaciones dinámicamente. Para obtener más información, consulte [Registro dinámico de clientes](/es/docs/get-started/applications/dynamic-client-registration).
* [Organizaciones](/es/docs/manage-users/organizations) y sus funcionalidades relacionadas pasan a estar disponibles.
