Comment dois-je mettre en œuvre OAuth pour une application?
Je suis entrain de créer une application pour un client qui doit faire ce qui suit:
- Permettre aux utilisateurs de s'authentifier à l'aide de Google, Facebook, Twitter, et LinkedIn.
- Autoriser les utilisateurs à ajouter des fournisseurs supplémentaires après la signature. (c'est à dire si l'utilisateur est authentifié avec Google alors qu'ils devraient être en mesure d'ajouter un ou de tous les autres fournisseurs ainsi.)
- Permettre aux utilisateurs d'importer des contacts Google, Facebook liste d'amis, de followers sur twitter, Linkedin et les amis afin de construire votre propre liste de contacts.
Où est le meilleur endroit pour commencer à apprendre à ce sujet? Est-il un standard que tout le monde l'utilise pour ces choses .NET? J'ai cherché sur Google autour pendant quelques heures, et alors qu'il semble que la plupart des gens point de DotNetOpenAuth je n'arrive pas à trouver un bon tutoriels sur la façon d'utiliser la bibliothèque. Le téléchargement est livré avec des échantillons, mais il est encore confus pour moi.
Je suppose qu'il serait aussi simple que:
- Configurer des fournisseurs de secrets.
- Commencer la connexion avec un fournisseur de
- Authentifier l'utilisateur avec auth cookie
- Créer l'enregistrement de l'utilisateur dans ma base de données et stocker l'ID unique de fournisseur.
Mais il semble que chaque fournisseur a son propre ensemble de code et c'est tous différents et déroutant. Facebook a un graphe d'objets, twitter a quelques "InMemoryTokenManager" que je ne comprends pas, et Google n'a pas même un exemple d'authentification, seulement un Carnet d'Adresse de Google par exemple. Et en plus de tout ce que vous avez à copier des morceaux de code à partir de certains ApplicationBlock de démonstration dans les échantillons dans votre propre application pour une raison quelconque, et que toutes les compiler sans savoir ce que le diable qu'il essaie de faire est une tâche ardue.
J'ai l'impression que je suis absent quelque chose de fondamental avec tout cela.
Même d'un livre, la recommandation serait grande à ce point.
Je crois que je comprends le des concepts de haut niveau de l'authentification OAuth, mais une fois que j'ai essayer de plonger dans le nitty-gritty ai immédiatement perdu.
source d'informationauteur Chev
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, il n'y a pas vraiment d'intérêt dans l'utilisation de bibliothèques externes si vous êtes sur le net 4.5 lorsque le défaut asp.net modèle est livré avec un code d'authentification pour la plupart de ces fournisseurs.
Seconde, si vous avez encore besoin d'un bon tutoriel sur certains détails de l'authentification oauth2, jetez un oeil à ce grand poste par Ben Foster http://ben.onfabrik.com/posts/oauth-providers
Troisième, malheureusement, si vous avez besoin d'autre chose que de authentiation, il n'existe pas de protocole. Ainsi, chaque fournisseur a sa propre façon d'exposer ces données supplémentaires - les contacts, les messages, etc. Vous ne pouvez pas faire grand-chose, il n'a rien à voir avec oauth2, mais est simplement un moyen de l'invocation d'une api spécifique qui par chance est souvent exposés que rest/xml et des services web basés sur l'authentification oauth2. Cela signifie que si vous faites uniquement l'authentification, le protocole est essentiellement le même pour chaque fournisseur. Rien de plus précis.
Quatrième, je m'en tiendrais à l'adresse e-mail est retourné par un prestataire plutôt que de l'id interne. Pas tous les fournisseurs de soutien à l'id alors que tous peuvent renvoyer l'email de l'utilisateur. Et vous pouvez faire confiance à cette information en tant que fournisseurs de vérifier les e-mails avant de le retourner via oauth2.
Je vous suggère d'utiliser la Domination du Monde de PureKrome, il est trivial à utiliser, bien documenté et très agréable!
https://github.com/PureKrome/WorldDomination.Web.Authentication
Il gère Twitter, Google, Facebook et autres avec la simple ligne de configurations, et il gère tout le reste.
Le créateur se pend à n jabbr.net aussi beaucoup.
L'ASP.NET MVC 4 'Application Internet" modèle a
DotNetOpenAuth
mis en œuvre sur elle, vous devriez jeter un oeil à ça si vous ne l'avez pas déjà.Prendre un coup d'oeil à la Sociale Bootstrap API projet (il utilise servicestack, mais il est agréable de voir tous ces mot à la mode, les technologies de travailler ensemble dans un lisible de l'échantillon).
Aussi, si vous voulez obtenir un meilleur contrôle sur la façon de OAuth œuvres, Mashape a une bonne explication. Qui vous donnera un regard sur les coulisses des trucs que la plupart des wrappers de mettre en œuvre.
Rick Strahl a un exemple que j'ai utilisé il y a des années pour mettre en œuvre OpenID dans MVC. C'est un peu daté, mais il a été l'un des plus simple des implémentations à l'époque. Plusieurs sites clients que j'ai construit à la mise en œuvre sont encore en cours d'exécution fine.