grant_types de tu aplicación.
Por ejemplo, si quieres proteger una aplicación móvil, el Authorization Code Flow with Proof Key for Code Exchange (PKCE) es el más adecuado.
Por otro lado, si quieres proteger una aplicación del lado del cliente, como una aplicación de una sola página (SPA), y no transfieres tokens entre servidores, el Implicit Flow with Form Post es el más adecuado.
Hay varios tipos de concesión válidos al registrar aplicaciones. Se pueden dividir en las siguientes categorías:
- Concesiones conformes con la especificación: Concesiones definidas por especificaciones externas y conformes con ellas, como Connect (OIDC).
- Concesiones de extensión de Auth0: Concesiones específicas de Auth0 que cumplen con el mecanismo de extensión de OAuth para admitir clientes adicionales o proporcionar un puente entre y otros marcos de confianza.
- Concesiones heredadas de Auth0: Tipos de concesión tradicionales compatibles solo para clientes heredados. Si eres un cliente heredado, te recomendamos encarecidamente migrar a una alternativa más segura.
Tipos de concesión disponibles
Tipos de concesión conformes con la especificación
| Tipo de concesión | Descripción |
|---|---|
implicit | Concesión implícita |
authorization_code | Concesión de código de autorización |
client_credentials | Concesión de credenciales de cliente |
password | Concesión de contraseña del propietario del recurso |
refresh_token | Uso de tokens de actualización |
urn:ietf:params:oauth:grant-type:device_code | Concesión de autorización de dispositivo |
Concesiones de extensión de Auth0
| Tipo de concesión | Descripción |
|---|---|
http://auth0.com/oauth/grant-type/password-realm | Usa una concesión de extensión similar a la concesión de contraseña del propietario del recurso, con la capacidad de indicar un realm específico |
http://auth0.com/oauth/grant-type/mfa-oob | Solicitud de concesión OOB para autenticación multifactor |
http://auth0.com/oauth/grant-type/mfa-otp | Solicitud de concesión OTP para autenticación multifactor |
http://auth0.com/oauth/grant-type/mfa-recovery-code | Solicitud de concesión de recuperación para autenticación multifactor |
http://auth0.com/oauth/grant-type/passwordless/otp | Solicitud de concesión para inicio de sesión integrado sin contraseña |
Concesión heredadas de Auth0
http://auth0.com/oauth/legacy/grant-type/rohttp://auth0.com/oauth/legacy/grant-type/ro/jwt-bearerhttp://auth0.com/oauth/legacy/grant-type/delegation/refresh_tokenhttp://auth0.com/oauth/legacy/grant-type/delegation/id_tokenhttp://auth0.com/oauth/legacy/grant-type/access_token
grant_types que debe estar rellenada. Para evitar cambios en la funcionalidad para los clientes de Auth0 en ese momento, rellenamos la propiedad grant_types de todas las aplicaciones existentes con todos los tipos de concesión heredados de Auth0, las extensiones de Auth0 y los tipos de concesión conformes con la especificación.
A partir de ese momento, los nuevos clientes de Auth0 ya no pudieron agregar tipos de concesión heredados a sus aplicaciones. Los tipos de concesión heredados solo están disponibles para clientes anteriores mientras migran a nuevos flujos, para evitar cambios disruptivos. Si eras cliente antes del 8 de junio de 2017, puedes habilitar un tipo de concesión heredado usando el o la de Auth0.
Si actualmente usas un tipo de concesión heredado, consulta la tabla siguiente para ver cuál de las alternativas seguras deberías usar en su lugar. Por ejemplo, si estás implementando autenticación ,
usa Universal Login en lugar del endpoint oauth/ro.
Correspondencia de tipos de concesión
Aplicaciones públicas
token_endpoint_auth_method establecida en none. De forma predeterminada, Auth0 crea aplicaciones públicas con los siguientes grant_types habilitados:
implicitauthorization_coderefresh_token
device_code.
Las aplicaciones públicas no pueden usar el tipo de concesión client_credentials. Para usar este tipo de concesión, debes configurar la aplicación como confidencial en lugar de pública. Usa el endpoint Update a client de la Auth0 Management API para establecer token_endpoint_auth_method en client_secret_post, client_secret_basic o private_key_jwt. Para obtener más información, consulta Application Credentials.
Aplicaciones confidenciales
token_endpoint_auth_method establecida en cualquier valor distinto de none. De forma predeterminada, Auth0 crea aplicaciones confidenciales con los siguientes grant_types habilitados:
implicitauthorization_coderefresh_tokenclient_credentials
Aplicaciones propias de confianza
grant_types que las aplicaciones confidenciales, junto con los siguientes:
passwordhttp://auth0.com/oauth/grant-type/password-realmhttp://auth0.com/oauth/grant-type/mfa-oobhttp://auth0.com/oauth/grant-type/mfa-otphttp://auth0.com/oauth/grant-type/mfa-recovery-code
Password y se habilitan al agregar el tipo de concesión Password o MFA a tu aplicación. No puedes seleccionarlos individualmente.
Restricciones de las aplicaciones de terceros
| Tipo de concesión | Disponible para aplicaciones de terceros |
|---|---|
authorization_code | Sí (PKCE obligatorio) |
refresh_token | Sí |
client_credentials | Sí (solo para clientes confidenciales) |
implicit | No |
password | No |
urn:ietf:params:oauth:grant-type:device_code | No |
| Tipos de concesión de MFA | No |
| Tipos de concesión heredados | No |