Type d'autorisation Password Credentials dans OAuth 2.0
Le type d'autorisation Password Credentials, souvent appele 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'acces. Ce type d'autorisation convient aux applications de confiance, comme celles detenues par le service lui-meme. Il n'est pas recommande pour les applications tierces, car il implique le partage direct d'identifiants de mot de passe sensibles avec l'application cliente.
Comment fonctionne Password Credentials ?
- Saisie de l'utilisateur :
- L'utilisateur fournit son nom d'utilisateur et son mot de passe directement a l'application cliente.
- Demande du token :
- Le client envoie ensuite ces identifiants au point de terminaison de token du serveur d'autorisation. Cette requete inclut egalement generalement le
client_idet leclient_secretdu client, bien que certaines implementations puissent ne pas exiger le secret client pour ce flux.
- Reponse du token :
- Si les identifiants sont valides, le serveur d'autorisation repond avec un token d'acces (et eventuellement un token de rafraichissement). Le client peut ensuite utiliser ce token pour effectuer des requetes au nom de l'utilisateur aupres du serveur de ressources.
Comment configurer Password Credentials ?
- Enregistrer votre application :
- Comme pour les autres flux OAuth 2.0, commencez par enregistrer votre application aupres du fournisseur OAuth 2.0. Vous recevrez generalement un
client_idet unclient_secretapres l'enregistrement.
- Mecanisme de saisie :
- Implementez un mecanisme dans votre application cliente ou les utilisateurs peuvent saisir leur nom d'utilisateur et leur mot de passe. Cela pourrait etre un simple formulaire de connexion.
- Requete de token :
- Lorsque les utilisateurs fournissent leurs identifiants, votre application doit effectuer une requete POST au point de terminaison de token du serveur d'autorisation. Cette requete doit inclure le
grant_type(defini sur "password"), leusername, lepassword, leclient_idet eventuellement leclient_secret. Assurez-vous que cette requete est effectuee de maniere securisee en utilisant HTTPS.
- Gerer la reponse du token :
- Si les identifiants sont corrects, le serveur d'autorisation repondra avec un token d'acces, que votre application doit stocker de maniere securisee. Optionnellement, vous pourriez egalement recevoir un token de rafraichissement, qui peut etre utilise pour obtenir de nouveaux tokens d'acces lorsque celui en cours expire.
- Utiliser le token :
- Comme avec les autres types d'autorisation, une fois que vous avez un token d'acces, vous pouvez l'utiliser pour effectuer des requetes autorisees au serveur de ressources au nom de l'utilisateur.
- Renouvellement du token :
- Si vous avez recu un token de rafraichissement et que le token d'acces expire, utilisez le token de rafraichissement pour obtenir un nouveau token d'acces sans redemander les identifiants a l'utilisateur.
Considerations :
Preoccupations de securite : Ce type d'autorisation implique le partage du mot de passe reel avec le client, ce qui represente un risque de securite important. Il est essentiel de s'assurer que le client est entierement digne de confiance.
Experience utilisateur reduite : Les utilisateurs sont formes a ne pas partager leurs mots de passe directement avec des applications tierces. Ce flux va a l'encontre de cette bonne pratique, pouvant causer hesitation ou mefiance.
Cas d'utilisation limites : En raison des raisons ci-dessus, le type d'autorisation Password Credentials n'est recommande que pour des scenarios tres specifiques, comme les applications internes ou les situations ou 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 preoccupations de securite inherentes. Son utilisation est decouragee pour les applications tierces, et meme pour les applications proprietaires, il est essentiel de gerer les identifiants de l'utilisateur avec le plus grand soin. Si vous envisagez ce flux, pesez soigneusement la commodite par rapport aux implications de securite.