La spécification OAuth 2 me porte à croire que le "serveur de ressources" et le "serveur d'autorisation" ne doivent pas nécessairement être la même application, mais j'ai du mal à comprendre comment cela est réellement mis en œuvre en pratique.
Par exemple, supposons que les applications suivantes existent:
Scénario n ° 1: connexion à l'interface Web
Scénario n ° 2: autorisation d'une application tierce
La partie que j'ai du mal à comprendre est de savoir comment authentifier l'utilisateur avant d'afficher le formulaire d'autorisation/de refus dans le scénario # 2. L'utilisateur peut être connecté à l'application Web principale, mais le service d'authentification n'en a aucune idée et devra en quelque sorte authentifier à nouveau l'utilisateur. Le service d'authentification doit-il également prendre en charge la connexion/les sessions?
Je me demande s'il serait plus logique que l'application Web soit responsable de l'affichage du formulaire d'autorisation/refus pour deux raisons:
Voici une alternative possible au scénario # 2:
Quelle est la meilleure façon de gérer cela? Tout commentaire général, conseil, etc. serait génial!
Merci
Votre scénario alternatif est probablement celui avec lequel vous voulez aller: si vous voulez vraiment vraiment séparer vos flux, vous pouvez essayer quelque chose comme ceci:
Documents sur le cadre OAauth2: https://tools.ietf.org/html/rfc6749
(A) Le client demande un jeton d'accès en s'authentifiant auprès du serveur d'autorisation et en présentant une autorisation.
(B) Le serveur d'autorisation authentifie le client et valide l'octroi d'autorisation et, s'il est valide, émet un jeton d'accès et un jeton d'actualisation.
(C) Le client fait une demande de ressource protégée au serveur de ressources en présentant le jeton d'accès.
(D) Le serveur de ressources valide le jeton d'accès et, s'il est valide, sert la demande.
(E) Les étapes (C) et (D) se répètent jusqu'à expiration du jeton d'accès. Si le client sait que le jeton d'accès a expiré, il passe à l'étape (G); sinon, il fait une autre demande de ressource protégée.
(F) Étant donné que le jeton d'accès n'est pas valide, le serveur de ressources renvoie une erreur de jeton non valide.
(G) Le client demande un nouveau jeton d'accès en s'authentifiant auprès du serveur d'autorisation et en présentant le jeton d'actualisation. Les exigences d'authentification client sont basées sur le type de client et sur les politiques du serveur d'autorisation.
(H) Le serveur d'autorisation authentifie le client et valide le jeton d'actualisation et, s'il est valide, émet un nouveau jeton d'accès (et, éventuellement, un nouveau jeton d'actualisation).