Je crée une application pour un client qui doit effectuer les tâches suivantes:
Où est le meilleur endroit pour commencer à apprendre à ce sujet? Existe-t-il une norme que tout le monde utilise pour ces choses dans .NET? Je suis sur Google depuis quelques heures et bien qu'il semble que la plupart des gens pointent vers DotNetOpenAuth Je n'arrive pas à trouver de didacticiels solides sur l'utilisation de la bibliothèque. Le téléchargement est fourni avec des échantillons, mais il m’embrouille toujours.
J'ai supposé que ce serait aussi simple que:
Mais il semble que chaque fournisseur ait son propre jeu de code, et tout est si différent et déroutant. Facebook contient des objets graphiques, Twitter des "InMemoryTokenManager" que je ne comprends pas et Google ne dispose même pas d'un exemple d'authentification, mais d'un exemple de carnet d'adresses Google. Et en plus de tout cela, vous devez copier des morceaux de code d'une démo ApplicationBlock des exemples dans votre propre application pour une raison quelconque, et le faire compiler sans savoir ce que cela essaye de faire est une tâche ardue.
Je sens que je manque quelque chose de fondamental avec tout cela.
Même une recommandation de livre serait formidable à ce stade.
Je crois comprendre les concepts de haut niveau d'OAuth, mais une fois que j'essaie de plonger dans les détails, je me perds immédiatement.
Premièrement, il n’ya vraiment aucun intérêt à utiliser des bibliothèques externes si vous êtes sur net 4.5 où le modèle par défaut asp.net est fourni avec un code d’authentification pour la plupart des fournisseurs mentionnés.
Deuxièmement, si vous avez encore besoin d’un bon tutoriel sur certains détails de l’authentification oauth2, jetez un coup d’œil à cet article de Ben Foster http://ben.onfabrik.com/posts/oauth-providers
Troisièmement, malheureusement, si vous avez besoin d'autre chose que l'authentification, il n'y a pas de protocole unique. Ainsi, chaque fournisseur a sa propre manière d’exposer ces données supplémentaires - contacts, publications, etc. Vous ne pouvez pas y faire grand-chose, cela n’a rien à voir avec oauth2, il s’agit simplement d’une manière d’invoquer une API spécifique qui, par hasard, est souvent utilisée. exposés en tant que services Web repos/xml basés sur l’authentification oauth2. Cela signifie que si vous n'effectuez qu'une authentification, le protocole est généralement le même pour chaque fournisseur. Quelque chose de plus est spécifique.
Quatrièmement, je me contenterais de l'adresse électronique renvoyée par un fournisseur plutôt que d'un identifiant interne. Tous les fournisseurs ne prennent pas en charge l'identifiant alors qu'ils peuvent tous renvoyer le courrier électronique de l'utilisateur. Et vous pouvez faire confiance à ces informations lorsque les fournisseurs vérifient leurs e-mails avant de les renvoyer via oauth2.
Je suggère que vous utilisiez World Domination de PureKrome, son utilisation est simple, bien documentée et très agréable!
https://github.com/PureKrome/WorldDomination.Web.Authentication
Il gère Twitter, Google, Facebook et autres avec de simples configurations en une ligne et gère tout le reste.
Le créateur traîne également autour de n jabbr.net.
Le modèle 'Internet Application' ASP.NET MVC 4 a DotNetOpenAuth
implémenté, vous devriez l'examiner si vous ne l'avez pas déjà fait.
Jetez un coup d'oeil au projet Social Bootstrap API (il utilise servicestack, mais il est agréable de voir toutes ces technologies de mots à la mode fonctionner ensemble dans un échantillon lisible).
De plus, si vous voulez mieux comprendre le fonctionnement d’OAuth, Mashape a une bonne explication . Cela vous donnera un aperçu des éléments cachés que la plupart des emballeurs mettent en œuvre.
Rick Strahl a un exemple que j’avais utilisé il ya des années pour implémenter OpenID dans MVC. C'est un peu démodé mais c'était l'une des implémentations les plus simples à l'époque. Plusieurs sites clients que j'ai construits avec cette implémentation fonctionnent toujours correctement.