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

问题描述 投票:37回答:2

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

  • Owin
  • OauthWebSecurity
  • OAuth 2.0
  • Oin Katana
  • ASP.NET身份
oauth asp.net-mvc-5 owin
2个回答
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 Identity

ASP.NET Identity与ASP.NET无关。谈论糟糕的命名...它提供了从数据源保存和检索用户数据的功能。它还为您提供了将声明和角色与用户,其他“登录提供者”相关联的能力(当您“使用Facebook登录”并且您的facebook中的user_id与您的本地用户ID相关联时,此信息为存储在AspNetUserLogins表中)。

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

References

Owin/Katana:

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 identity

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


0
投票

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server(最新方法 - 从技术上讲,你必须实现一些方法。很少有例子,作为替代方案,你可以回顾一下在IdentityServer4中如何实现.net核心)

© www.soinside.com 2019 - 2024. All rights reserved.