Types d’autorisation d’application
Les types d’autorisation d’application (ou flux) sont des méthodes par lesquelles les applications peuvent obtenir des Jetons d’accès et par lesquelles vous accordez un accès limité à vos ressources à une autre entité sans exposer des identifiants. Le protocole OAuth 2.0 prend en charge plusieurs types d’autorisation, qui permettent différents types d’accès.
En fonction des besoins de votre demande, certains types d’autorisations sont plus appropriés que d’autres. Auth0 fournit de nombreux flux d’authentification et d’autorisation différents et vous permet d’indiquer quels types d’autorisation sont appropriés en fonction de la propriété grant_types
de votre application.
Par exemple, si vous souhaitez sécuriser une application mobile, le Flux de code d’autorisation avec Proof Key for Code Exchange (PKCE) est le plus pertinent.
Par ailleurs, si vous souhaitez sécuriser une application côté client, telle qu’une application à page unique, et que vous ne transmettez pas de jetons entre les serveurs, le Flux implicite avec Form Post est le plus pertinent.
Différents types d’autorisations sont valables lors de l’enregistrement d’applications. Ils peuvent être classés dans les catégories suivantes :
Autorisations conformes aux spécifications : Autorisations définies par des spécifications externes et conformes à celles-ci, telles que OpenID Connect (OIDC).
Auth0 extension grants (Autorisations d’extension Auth0) : Autorisations spécifiques à Auth0 conformes au OAuth extension mechanism (mécanisme d’extension d’OAuth) afin de prendre en charge des clients supplémentaires ou d’établir une passerelle entre OAuth et d’autres cadres d’applications de confiance.
Autorisations héritées Auth0 : Types d’autorisation traditionnelles prises en charge pour les clients hérités uniquement. Si vous êtes un client hérité, nous vous recommandons vivement de passer à une solution plus sûre.
Types d’autorisations disponibles
Autorisations conformes aux spécifications
Type d’autorisation | Description |
---|---|
implicit |
Autorisation implicite |
authorization_code |
Octroi du code d’autorisation |
client_credentials |
Autorisation des identifiants client |
password |
Autorisation par mot de passe du propriétaire de la ressource |
refresh_token |
Utiliser des jetons d’actualisation |
urn:ietf:params:oauth:grant-type:device_code |
Octroi d’autorisation d’appareil |
Autorisations de l’extension Auth0
Type d’autorisation | Description |
---|---|
http://auth0.com/oauth/grant-type/password-realm |
Utiliser une autorisation d’extension semblable à l’autorisation de mot de passe du propriétaire de ressource qui comprend la possibilité d’indiquer une partition particulière |
http://auth0.com/oauth/grant-type/mfa-oob |
Demande d’autorisation OOB Authentification multifacteur (MFA) |
http://auth0.com/oauth/grant-type/mfa-otp |
Demande d’autorisation OTP Authentification multifacteur (MFA) |
http://auth0.com/oauth/grant-type/mfa-recovery-code |
Demande d’autorisation de récupération de l'authentification multifacteur (MFA) |
http://auth0.com/oauth/grant-type/passwordless/otp |
Demande d’autorisation de connexion sans mot de passe intégrée |
Autorisations héritées Auth0
Les autorisations héritées comprennent
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
Les types d’autorisations héritées sont des types d’autorisations traditionnels qui ne sont prises en charge que pour les clients hérités. Si vous êtes un client hérité, nous vous recommandons vivement de passer à une solution plus sûre.
Depuis le 8 juin 2017, toutes les applications ont reçu une propriété grant_types
qui doit être renseignée. Pour éviter les changements de fonctionnalité pour les clients Auth0 à ce moment-là, nous avons renseigné la propriété grant_types
pour toutes les applications existantes avec tous les types d’autorisation hérités d’Auth0, d’extensions Auth0 et conformes aux spécifications.
À ce moment, les nouveaux clients d’Auth0 ne sont plus en mesure d’ajouter des types d’autorisations héritées à leurs applications. Les types d’autorisations héritées ne sont disponibles que pour les clients hérités pendant qu’ils migrent vers les nouveaux flux, afin les modifications majeures (« breaking changes »). Si vous étiez client avant le 8 juin 2017, vous pouvez activer un type d’autorisation héritée en utilisant l’Auth0 Dashboard ou de Management API Auth0.
Si vous utilisez actuellement un type d’autorisation héritée, consultez le tableau ci-dessous pour savoir laquelle des solutions de rechange sécurisées vous devriez plutôt utiliser. Par exemple, si vous mettez en œuvre l’authentification sans mot de passe,
Utilisez Connexion universelle au lieu du point de terminaison oauth/ro
.
Correspondance des types d’autorisations
Lorsqu’elles sont enregistrées, les applications ont accès à différents types d’autorisations en fonction du type d’application, en particulier si l’application est privée ou publique. En outre, les applications tierces de confiance ont accès à des types d’autorisations supplémentaires.
Applications publiques
Lorsqu’une application native ou une application à page unique (Single-Page Application/SPA) est enregistrée dans le Dashboard, elle est automatiquement marquée comme une application publique, ce qui est indiqué par le drapeau token_endpoint_auth_method
qui est défini sur none
. Par défaut, Auth0 crée des applications publiques avec les grant_types
suivants activés :
implicit
authorization_code
refresh_token
Les applications natives peuvent également utiliser le type d’autorisation device_code
.
Les applications publiques ne peuvent pas utiliser le type d’autorisation client_credentials
. Pour utiliser ce type d’autorisation, vous devez configurer l’application de manière à ce qu’elle soit privée plutôt que publique. Utilisez le point de terminaison de l’Auth0 Management API Mettre à jour un client pour définir token_endpoint_auth_method
sur client_secret_post,
client_secret_basic
, ou private_key_jwt
. Pour en savoir plus, consultez Identifiants de l’application.
Applications privées
Lorsqu’une application Web classique ou une application de communication entre machines est enregistrée dans le Tableau de bord Auth0, elle est automatiquement marquée comme une application confidentielle, ce qui est signalé par l’indicateur token_endpoint_auth_method
défini sur une valeur autre que none
. Par défaut, Auth0 crée des applications confidentielles avec les grant_types
suivants activés :
implicit
authorization_code
refresh_token
client_credentials
Applications tierces de confiance
Les applications de confiance de première partie ont les mêmes grant_types
activés que les applications confidentielles, ainsi que les éléments suivants :
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 vous utilisez le Dashboard pour activer ou désactiver ces types d’autorisation, sachez que tous les types d’autorisation par mot de passe et MFA sont activés lorsque vous ajoutez le type d’autorisation Password
ou MFA
à votre application. Vous ne pouvez pas les sélectionner individuellement.