web-dev-qa-db-fra.com

Quelle est la relation entre owin et oAuth2.0?

J'étudie les stratégies de connexion externe et la terminologie me confond. Quelle est la relation entre les éléments suivants.

  • Owin
  • OauthWebSecurity
  • OAuth 2.0
  • Owin Katana
  • Identité ASP.NET
39
cnz81

Owin

Owin n'est rien de plus qu'un spécification . Il signifie Open Web Interface for .Net. En termes très simplistes, il est basé sur l'idée qu'en utilisant quelques constructions de langage (délégués et dictionnaire), vous pouvez créer un cadre de gestion des requêtes Web indépendant de l'endroit où il est hébergé (vous pouvez même exécuter une "application owin" à partir de une application console).

L'implémentation de la spécification Owin s'appelle Katana.

OAuth

OAuth 2.0 est un protocole Autorisation. L'idée derrière OAuth est que vous (le propriétaire de la ressource) pouvez déléguer des privilèges d'accès à un tiers. Un exemple est une application Web pouvant publier sur votre mur Facebook pour vous. Encore une fois, en termes très simplistes, cela se matérialise par l'envoi d'une redirection 302 à l'utilisateur lorsqu'elle accède à une ressource protégée. Cette 302 redirige l'utilisateur, par exemple vers la page de connexion de Facebook oauth ( https : //www.facebook.com/dialog/oauth? client_id = ... & redirect_url = [yourwebapp] & scope = [permissionsrequiredfromuser] ). Après vous être connecté à facebook, acceptez la demande d'autorisation, facebook enverra une redirection 302 à la redirect_url que vous avez fournie avec un access_token que vous pouvez ensuite utiliser pour envoyer des demandes au nom de l'utilisateur qui a fourni les informations d'identification. Par exemple, pour obtenir des informations à propos de l'utilisateur auquel vous souhaitez envoyer une demande https://graph.facebook.com/me?access_token= [access_token] . Il existe des variantes pour ce flux de travail. Elles sont toutes expliquées dans les liens à l'adresse e La fin de la réponse.

Identité ASP.NET

ASP.NET Identity n'a rien à voir avec ASP.NET. Parlez de mauvais nom ... Il fournit des fonctionnalités pour enregistrer et récupérer les données de l'utilisateur à partir d'une source de données. Il vous offre également la possibilité d'associer des revendications et des rôles aux utilisateurs, aux autres "fournisseurs de connexion" (ce serait le cas lorsque vous vous "connectez avec Facebook" et que votre identifiant d'utilisateur de Facebook est associé à votre identifiant d'utilisateur local, ces informations sont stockés dans la table AspNetUserLogins).

La façon dont vous voyez qu'il est utilisé dans le modèle de projet MVC se trouve dans le contrôleur de compte et le CookieAuthenticationMiddleware.

Les références

Owin/Katana:

http://odetocode.com/blogs/scott/archive/2013/07/09/getting-started-with-owin-katana-and-vs2013.aspxhttp: // odetocode.com/blogs/scott/archive/2013/11/11/writing-owin-middleware.aspxhttp://odetocode.com/blogs/scott/archive/2013/11/12/ simple-logging-middleware-katana-part-4.aspxhttp://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katanahttp://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection

OAuth

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.1http://blogs.msdn.com/ b/webdev/archive/2013/07/03/comprehension-owin-forms-authentication-in-mvc-5.aspxhttp://www.asp.net/web-api/overview/ services de sécurité/authentification externe

Identité ASP.NET

http://brockallen.com/2013/10/20/the-good-the-bad-and-the-ugly-of-asp-net-identity/http://curah.Microsoft.com/55636/aspnet-identityhttp://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics .aspx

61
Rui

https://docs.Microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server (dernière approche - techniquement, vous devez réalisez peu de méthodes. il y a peu d'exemples, comme alternative vous pouvez voir comment cela est réalisé dans IdentityServer4 pour .net core)

0
Anatoliy