Overview
Conceptos clave
- Auth0 admite el protocolo OAuth 2.0 elaborado por el Grupo de Trabajo de Ingeniería de Internet (IETF).
- Lea sobre roles, tipos de concesión (o flujos de trabajo) y endpoints de la especificación OAuth 2.0.
Roles
- Propietario del recurso: entidad que puede conceder acceso a un recurso protegido. Normalmente, es el usuario final.
- Servidor de recursos: servidor que aloja los recursos protegidos. Es la API a la que quiere acceder.
- Cliente: aplicación que solicita acceso a un recurso protegido en nombre del propietario del recurso.
- Servidor de autorización: servidor que autentica al propietario del recurso y emite tokens de acceso tras obtener la autorización adecuada. En este caso, Auth0.
Tipos de concesión
- Flujo de código de autorización: lo utilizan las aplicaciones web que se ejecutan en un servidor. También lo usan las aplicaciones móviles, mediante la técnica Proof Key for Code Exchange (PKCE).
- Flujo implícito con envío de formulario: lo utilizan aplicaciones centradas en JavaScript (aplicaciones de una sola página) que se ejecutan en el navegador del usuario.
- Flujo de contraseña del propietario del recurso: lo utilizan aplicaciones de alta confianza.
- Flujo de credenciales de cliente: se utiliza para la comunicación entre máquinas.
Endpoints
/authorize y el endpoint /oauth/token.
El endpoint /authorize se usa para interactuar con el propietario del recurso y obtener autorización para acceder al recurso protegido. Para entenderlo mejor, imagine que quiere iniciar sesión en un servicio con su cuenta de Google. Primero, el servicio le redirige a Google para que se autentique (si aún no ha iniciado sesión) y, a continuación, verá una pantalla de consentimiento en la que se le pedirá que autorice al servicio a acceder a algunos de sus datos (recursos protegidos); por ejemplo, su dirección de correo electrónico y su lista de contactos.
Los parámetros de solicitud del endpoint /authorize son:
Puede configurar parámetros de consulta personalizados cuando su aplicación haga la llamada inicial al endpoint
/authorize para autenticar a un usuario. Puede usar parámetros de consulta personalizados para proporcionar contexto adicional a la plantilla de página de la experiencia de .
Debe habilitar ID First para usar el parámetro connection. Para obtener más información sobre el parámetro connection y la experiencia de Universal Login, consulte Sin contraseña para Universal Login.
Los parámetros de consulta con el prefijo ext- aparecen automáticamente en el contexto de la plantilla de página.
Este endpoint se usa en los tipos de concesión de código de autorización e implícito. El servidor de autorización necesita saber qué tipo de concesión quiere usar la aplicación, ya que esto afecta al tipo de credencial que emitirá:
- Para la concesión de código de autorización, emitirá un código de autorización (que más adelante se puede intercambiar por un token de acceso en el endpoint
/oauth/token). - Para la concesión implícita, emitirá un token de acceso, que es una cadena opaca (o un en una implementación de Auth0) que indica quién ha autorizado qué permisos (alcances) a qué aplicación.
response_type se utiliza de la siguiente manera:
- Para la concesión de código de autorización, use
response_type=codepara incluir el código de autorización. - Para la concesión implícita, use
response_type=tokenpara incluir un token de acceso. Una alternativa es usarresponse_type=id_token tokenpara incluir tanto un token de acceso como un .
response_mode. Es opcional y puede tomar los siguientes valores:
Endpoint de token
/oauth/token para obtener un token de acceso o un . Se usa en todos los flujos, excepto en el Flujo implícito, ya que en ese caso el token de acceso se emite directamente.
- En el Flujo de código de autorización, la aplicación intercambia el código de autorización que obtuvo del endpoint de autorización por un token de acceso.
- En el Flujo de credenciales de cliente y en el intercambio de concesión de credenciales de contraseña del propietario del recurso, la aplicación se autentica con un conjunto de credenciales y luego obtiene un token de acceso.
Parámetros de estado
state que permite restaurar el estado previo de la aplicación. El parámetro state conserva un objeto de estado establecido por el cliente en la solicitud de autorización y lo pone a disposición del cliente en la respuesta. La razón principal para usar el parámetro state es mitigar los ataques CSRF. Consulte Use OAuth 2.0 State Parameters para obtener más información.