owin和oAuth2.0之间有什么关系?

时间:2014-08-26 04:31:37

标签: oauth asp.net-mvc-5 owin

我研究外部登录策略,术语让我感到困惑。以下是什么关系。

  • Owin
  • OauthWebSecurity
  • OAuth 2.0
  • Owin Katana
  • ASP.NET标识

2 个答案:

答案 0 :(得分:60)

Owin

Owin不超过specification。它代表.Net的开放Web界面。 在非常简单的术语中,它的基础是使用一些语言结构(委托和字典),您可以创建一个框架来处理与托管位置无关的Web请求(您甚至可以运行" owin应用程序"来自控制台应用程序。)

Owin规范的实施称为Katana。

的OAuth

OAuth 2.0是授权协议。 OAuth背后的想法是您(资源所有者)可以将访问权限委派给第三方。一个例子是能够在Facebook墙上发布的Web应用程序。 同样,在非常简单的术语中,这通过在访问受保护资源时向用户发送302重定向来实现。 302将用户重定向到例如Facebook的oauth登录页面(https://www.facebook.com/dialog/oauth?client_id=...&redirect_url=[yourwebapp]&scope=[permissionsrequiredfromuser])。 登录Facebook后,接受权限请求,Facebook将向您提供的redirect_url发送302重定向 access_token ,然后您可以代表提供凭据的用户发送请求。例如,要获取有关用户的信息,请执行https://graph.facebook.com/me?access_token=[access_token]的请求。 此工作流程有各种变化。它们都在答案末尾的链接中解释。

ASP.NET标识

ASP.NET Identity与ASP.NET无关。谈论糟糕的命名...它提供了从数据源保存和检索用户数据的功能。它还使您能够将声明和角色关联到用户,其他"登录提供商" (当你"登录facebook"并且你的facebook中的user_id与你的本地用户ID相关联时,就会出现这种情况,这些信息存储在AspNetUserLogins表中)。

您在MVC项目模板中看到它的使用方式是在Account控制器和CookieAuthenticationMiddleware中。

参考

Owin /卡塔纳:

http://odetocode.com/blogs/scott/archive/2013/07/09/getting-started-with-owin-katana-and-vs2013.aspx http://odetocode.com/blogs/scott/archive/2013/11/11/writing-owin-middleware.aspx http://odetocode.com/blogs/scott/archive/2013/11/12/simple-logging-middleware-katana-part-4.aspx http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana http://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.1 http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx http://www.asp.net/web-api/overview/security/external-authentication-services

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-identity http://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics.aspx

答案 1 :(得分:0)

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server(最新方法-从技术上讲,您必须实现几种方法。示例很少,作为替代方案,您可以查看在.net核心的IdentityServer4中如何实现该方法)