Je suis un peu confus sur OpenID Oauth Stuff.
(par Oauth - je veux dire Oauth 2.0 ici et plus tard) P>
Ma cible consiste à créer un site avec OpenID (ou OAuth) Auth, ainsi qu'avec l'héritage
Email + mot de passe auth. Le site sera sur Django Framework. (python)
Je comprends la différence entre Oauth et OpenID et Diff entre l'autorisation et l'authentification.
Mon objectif principal est de mettre en œuvre OpenID Login avec Google comme fournisseur d'identité. P>
Le flux de connexion et de registre doit ressembler à de nombreux sites. Comme je le vois: p>
Enregistrer Scénario: strong> p>
1) L'utilisateur entre URL OpenID (clique sur le bouton Google) P>
2) L'utilisateur est redirigé vers Auth Fournisseur (Google)
Page dit:
"Site génial" Demandez votre:
email, langue, pays ... p>
3) L'utilisateur dit oui .. se redirige
Derrière les scènes "Site génial"
Réessions Langue de messagerie et autres informations utilisateur
Utilisation du jeton d'accès p>
4) Utilisateur remplit d'autres éléments nécessaires dans le profil.
Et c'est ça .. hes maintenant enregistré. p>
Scénario de connexion: strong> p>
1) L'utilisateur entre URL OpenID (clique sur le bouton Google) P>
1.a) Si l'utilisateur est déjà connecté au fournisseur d'authentification
hmm ... il n'est pas clair pour moi .. mais d'une manière ou d'une autre
Reconnectez-vous sans afficher une page de fournisseur (peut-être qu'il se ferme rapidement?) P>
1.b) si l'utilisateur n'est pas connecté au fournisseur
Ensuite, le fournisseur affiche la page de connexion et redirige
à un site génial sur le succès. P>
Parce que je dois avoir des données utilisateur
Il me semble que je dois utiliser:
Oauth ou hybride (openid + oauth d'exerciceions)
Protocole. P>
3 Réponses :
Pourquoi pas simplement utiliser la bibliothèque, qui fait tout le travail acharné d'intégration des fournisseurs d'identification ouverte. P>
Vous pouvez utiliser socialauth ou l'un des autres packages d'authentification avec des fonctionnalités similaires. P>
À mon avis, OpenID et OAuth 2.0 sont deux concepts différents. P>
OpenID car son nom a expliqué principalement axé sur la gestion de l'identité. Donc, c'est plus comme un cadre ou un protocole de gérer l'identité de l'utilisateur. P> li>
OAuth 2.0 a été conçu pour fournir un protocole pouvant effectuer des applications sur Internet à gérer l'autorisation avec certains fournisseurs d'autorisation de tiers. Je vous suggère de passer à travers le SPEC IEFT OAUTH 2.0 avant d'obtenir votre Main sale. Vous pouvez aussi trouver de bonnes informations dans cet article Une explication simplifiée de OAUTH22 .0 p> li> ol>
Semble que vous souhaitez que votre propre site Web puisse gérer l'autorisation de l'utilisateur par lui-même, cela signifie dans la zone OAuth 2.0 Votre propre site Web est un autorisateur. P>
à vous question: p>
La portée est fournie par le fournisseur d'autorisation, veuillez vous reporter à leur documentation. P> li>
OAuth fournit uniquement le cadre d'autorisation de votre application Web pour accéder aux informations protégées du propriétaire de la ressource. Pour l'exemple de Google, l'utilisateur final autorisant votre application à accéder à ses informations protégées reste un utilisateur Google que si votre application Web crée automatiquement un compte d'utilisateur pour lui dans votre propre base de données de compte d'utilisateur - je pense que cette étape est ce qui Vous voulez dire inscription. OAuth ne couvre rien sur l'enregistrement car il est hors de portée de l'autorisation. P> li>
Dans votre scénario Vous avez toujours votre propre base de données de compte et que vous souhaitez s'authentifier avec le nom d'utilisateur et le mot de passe. OAuth 2.0 peut vraiment gérer ce scénario si vous implémentez votre propre autorisateur et utilisez le flux d'authentification «du mot de passe du propriétaire de la ressource». P> li>
Je ne suis pas gars python, mais je peux vous dire avant d'évaluer ces libs que vous devez comprendre différents rôles définis dans la spécification OAuth 2.0. Certains du rôle de serveur d'autorisation de lecture de LIBS jouent un rôle de serveur de ressources de jeu. P> li> ol>
Je recommanderais Si vous voulez en savoir plus sur OAuth / OpenID, je pense qu'il est préférable de mettre en œuvre la redirection et le rappel vous-même. Plus tard, il est préférable d'utiliser la bibliothèque pour gérer cela, car ils suivent de plus près le protocole. Un très bon article sur ce sujet pour Django est HTTPS: // scotch.io/tatudials/django-authentication-with-facebook-instagram-and-linkedin . P>