2015-04-15 2 views
2

Nous avons plusieurs projets Web (sites), chacun ayant sa propre logique d'autorisation. Aujourd'hui, mon directeur informatique m'a demandé de mettre en œuvre oAuth et de l'utiliser pour valider les utilisateurs sur tous les sites.Mise en œuvre du serveur oAuth personnalisé et ses avantages

Plus tôt, j'ai utilisé oAuth pour Google, Facebook, Twitter et Microsoft. J'ai plusieurs questions ici

  1. Quels sont les avantages de la mise en œuvre fournisseur OAuth
  2. Quelle est la meilleure approche dans un des principes OAuth génériques
  3. Puis-je utiliser ce serveur OAuth pour Single Sign On

Lorsque j'ai un utilisateur oAuth de Google ou autre, l'idée était d'éliminer les efforts de l'utilisateur pour s'inscrire sur mon site plutôt que d'utiliser les mêmes informations d'identification qu'il/elle a pour Google. Est-ce le seul avantage que j'aurais si je créais mon oAuth personnalisé?

mise en œuvre oAuth:

  • Créer une entité d'application avec ApplicationName, ClientID, ClientSecrete
  • Créer un utilisateur Entité avec UserID, UserName, Mot de passe, applicationId
  • Partager le ClientID unique et Secrete à chaque site et lorsque l'utilisateur essaie de se connecter à partir de ce site, transmettez le clientID, clientSecrete, UserName, Password et validez et renvoyez vrai ou faux
  • Suivez le flux similaire pour que l'utilisateur s'enregistre sur le système .

À un niveau élevé, mon flux ci-dessus répondra-t-il au concept oAuth? Y a-t-il des détails de mise en œuvre en profondeur d'oAuth que je peux consulter pour mieux comprendre?

+0

https://github.com/DotNetOpenAuth/DotNetOpenAuth, implémentation C# des protocoles OpenID, OAuth – Smartkid

Répondre

1

http://oauth.net/articles/authentication/

C'est une bonne lecture, pour vous dire ce que vous devez utiliser pour OAuth et non: =)

https://msdn.microsoft.com/en-us/library/hh291066(v=vs.110).aspx Windows Identity Fundation ... Pouvez-vous aider avec une autorisation unique, à travers différents les applications et les couches ..

et voici enfin quelques lignes directrices comment faire:

http://www.c-sharpcorner.com/UploadFile/scottlysle/windows-identity-foundation-and-single-sign-on-sso/

+0

Comment cela est-il géré dans plusieurs cas de clients. Comme mon utilisateur est sur D1.com quand il tente de se connecter j'ai envoyé son nom d'utilisateur, mot de passe, ID client au serveur OAuth qui accorde l'accès à mon utilisateur sur D1.com, mais plus tard, quand l'utilisateur est allé à D2.com puis-je éviter à l'utilisateur d'entrer un nom d'utilisateur et un mot de passe? si oui comment? – HaBo

+0

Vous devez toujours vous connecter en quelque sorte! L'utilisation de google/Fb n'est pas recommandée pour un accès sécurisé élevé, car ceux-ci sont trop vulnérables. Si vous savez trop qui vous êtes, cela n'a pas d'importance .. De toute façon, vous pouvez toujours utiliser un fournisseur d'appartenance, ou dans mvc le nouveau asp.net.blabla owin, qui a un support intégré pour Oauth (orization: =)) Tant que les fournisseurs utilisent le même stockage, vous pouvez le réutiliser sur chaque site: =) –

+0

avec un STS (en fonction de l'implémentation), si vous sont en train de changer de site ... l'authentification est toujours effectuée sur le STS, elle renvoie une réclamation que vous pouvez réutiliser, si le STS vous semble autorisé, vous n'avez plus besoin de vous reconnecter. –