Saltar al contenido principal
Los tipos de concesión de la aplicación (o flujos) son métodos mediante los cuales las aplicaciones pueden obtener tokens de acceso y con los que otorgas acceso limitado a tus recursos a otra entidad sin exponer credenciales. El protocolo OAuth 2.0 admite varios tipos de concesión, que permiten distintos tipos de acceso. Según las necesidades de tu aplicación, algunos tipos de concesión son más adecuados que otros. Auth0 proporciona muchos flujos diferentes de autenticación y y te permite indicar qué tipos de concesión son apropiados según la propiedad 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

Concesiones de extensión de Auth0

Tipo de concesiónDescripción
http://auth0.com/oauth/grant-type/password-realmUsa 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-oobSolicitud de concesión OOB para autenticación multifactor
http://auth0.com/oauth/grant-type/mfa-otpSolicitud de concesión OTP para autenticación multifactor
http://auth0.com/oauth/grant-type/mfa-recovery-codeSolicitud de concesión de recuperación para autenticación multifactor
http://auth0.com/oauth/grant-type/passwordless/otpSolicitud de concesión para inicio de sesión integrado sin contraseña

Concesión heredadas de Auth0

Los concesión heredados incluyen:
  • http://auth0.com/oauth/legacy/grant-type/ro
  • http://auth0.com/oauth/legacy/grant-type/ro/jwt-bearer
  • http://auth0.com/oauth/legacy/grant-type/delegation/refresh_token
  • http://auth0.com/oauth/legacy/grant-type/delegation/id_token
  • http://auth0.com/oauth/legacy/grant-type/access_token
Los tipos de concesión heredados son los tipos de concesión tradicionales compatibles únicamente para clientes heredados. Si eres un cliente heredado, te recomendamos encarecidamente migrar a una alternativa más segura. A partir del 8 de junio de 2017, a todas las aplicaciones se les asignó una propiedad 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

Al registrarse, las aplicaciones tienen acceso a distintos tipos de concesión según su tipo, concretamente, en función de si la aplicación es confidencial o pública. Además, las aplicaciones propias de confianza tienen acceso a tipos de concesión adicionales.

Aplicaciones públicas

Cuando una Native Application o Single-Page Application (SPA) se registra en el Dashboard, se marca automáticamente como aplicación pública, lo que se indica mediante la marca token_endpoint_auth_method establecida en none. De forma predeterminada, Auth0 crea aplicaciones públicas con los siguientes grant_types habilitados:
  • implicit
  • authorization_code
  • refresh_token
Las Native Apps también pueden usar el tipo de concesión 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

Cuando se registra una Aplicación Web Regular o una Aplicación de Máquina a Máquina (M2M) en el Auth0 Dashboard, se marca automáticamente como aplicación confidencial, lo que se indica con la marca token_endpoint_auth_method establecida en cualquier valor distinto de none. De forma predeterminada, Auth0 crea aplicaciones confidenciales con los siguientes grant_types habilitados:
  • implicit
  • authorization_code
  • refresh_token
  • client_credentials

Aplicaciones propias de confianza

Las aplicaciones propias de confianza tienen habilitados los mismos grant_types que las aplicaciones confidenciales, junto con los siguientes:
  • password
  • http://auth0.com/oauth/grant-type/password-realm
  • http://auth0.com/oauth/grant-type/mfa-oob
  • http://auth0.com/oauth/grant-type/mfa-otp
  • http://auth0.com/oauth/grant-type/mfa-recovery-code
Si usas el Dashboard para habilitar o deshabilitar estos tipos de concesión, ten en cuenta que todos los tipos de concesión de 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

Las aplicaciones de terceros admiten un conjunto limitado de tipos de concesión, de acuerdo con las mejores prácticas de OAuth 2.1:
Tipo de concesiónDisponible para aplicaciones de terceros
authorization_codeSí (PKCE obligatorio)
refresh_token
client_credentialsSí (solo para clientes confidenciales)
implicitNo
passwordNo
urn:ietf:params:oauth:grant-type:device_codeNo
Tipos de concesión de MFANo
Tipos de concesión heredadosNo
Para obtener más información, consulta Controles de seguridad para aplicaciones de terceros.

Más información