Type d'autorisation Password Credentials dans OAuth 2.0

Le type d'autorisation Password Credentials, souvent appelé flux "Resource Owner Password Credentials" (ROPC), est un moyen pour les utilisateurs de fournir directement leur nom d'utilisateur et leur mot de passe pour obtenir un token d'accès. Ce type d'autorisation convient aux applications de confiance, comme celles détenues par le service lui-même. Il n'est pas recommandé pour les applications tierces, car il implique le partage direct d'identifiants de mot de passe sensibles avec l'application cliente.

Type d'autorisation Password Credentials dans LoadFocus

Comment fonctionne Password Credentials ?

  1. Saisie de l'utilisateur :
  • L'utilisateur fournit son nom d'utilisateur et son mot de passe directement à l'application cliente.
  1. Demande du token :
  • Le client envoie ensuite ces identifiants au point de terminaison de token du serveur d'autorisation. Cette requête inclut également généralement le client_id et le client_secret du client, bien que certaines implémentations puissent ne pas exiger le secret client pour ce flux.
  1. Réponse du token :
  • Si les identifiants sont valides, le serveur d'autorisation répond avec un token d'accès (et éventuellement un token de rafraîchissement). Le client peut ensuite utiliser ce token pour effectuer des requêtes au nom de l'utilisateur auprès du serveur de ressources.

Comment configurer Password Credentials ?

  1. Enregistrer votre application :
  • Comme pour les autres flux OAuth 2.0, commencez par enregistrer votre application auprès du fournisseur OAuth 2.0. Vous recevrez généralement un client_id et un client_secret après l'enregistrement.
  1. Mécanisme de saisie :
  • Implémentez un mécanisme dans votre application cliente où les utilisateurs peuvent saisir leur nom d'utilisateur et leur mot de passe. Cela pourrait être un simple formulaire de connexion.
  1. Requête de token :
  • Lorsque les utilisateurs fournissent leurs identifiants, votre application doit effectuer une requête POST au point de terminaison de token du serveur d'autorisation. Cette requête doit inclure le grant_type (défini sur "password"), le username, le password, le client_id et éventuellement le client_secret. Assurez-vous que cette requête est effectuée de manière sécurisée en utilisant HTTPS.
  1. Gérer la réponse du token :
  • Si les identifiants sont corrects, le serveur d'autorisation répondra avec un token d'accès, que votre application doit stocker de manière sécurisée. Optionnellement, vous pourriez également recevoir un token de rafraîchissement, qui peut être utilisé pour obtenir de nouveaux tokens d'accès lorsque celui en cours expire.
  1. Utiliser le token :
  • Comme avec les autres types d'autorisation, une fois que vous avez un token d'accès, vous pouvez l'utiliser pour effectuer des requêtes autorisées au serveur de ressources au nom de l'utilisateur.
  1. Renouvellement du token :
  • Si vous avez reçu un token de rafraîchissement et que le token d'accès expire, utilisez le token de rafraîchissement pour obtenir un nouveau token d'accès sans redemander les identifiants à l'utilisateur.

Considérations :

  • Préoccupations de sécurité : Ce type d'autorisation implique le partage du mot de passe réel avec le client, ce qui représente un risque de sécurité important. Il est essentiel de s'assurer que le client est entièrement digne de confiance.

  • Expérience utilisateur réduite : Les utilisateurs sont formés à ne pas partager leurs mots de passe directement avec des applications tierces. Ce flux va à l'encontre de cette bonne pratique, pouvant causer hésitation ou méfiance.

  • Cas d'utilisation limités : En raison des raisons ci-dessus, le type d'autorisation Password Credentials n'est recommandé que pour des scénarios très spécifiques, comme les applications internes ou les situations où une confiance maximale existe entre le client et l'utilisateur.

Conclusion :

Le type d'autorisation Password Credentials offre un flux plus direct pour les applications de confiance mais comporte des préoccupations de sécurité inhérentes. Son utilisation est découragée pour les applications tierces, et même pour les applications propriétaires, il est essentiel de gérer les identifiants de l'utilisateur avec le plus grand soin. Si vous envisagez ce flux, pesez soigneusement la commodité par rapport aux implications de sécurité.