oauth - owin和oAuth2.0有什么关系?

标签 oauth asp.net-mvc-5 owin

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

  • 欧文
  • OauthWebSecurity
  • OAuth 2.0
  • 欧文·卡塔纳
  • ASP.NET 身份

最佳答案

欧文

欧文只不过是一个specification 。它代表 .Net 的开放式 Web 接口(interface)。 用非常简单的术语来说,它基于这样的想法:使用一些语言构造(委托(delegate)和字典),您可以创建一个框架来处理独立于托管位置的 Web 请求(您甚至可以从以下位置运行“owin 应用程序”)控制台应用程序)。

Owin 规范的实现称为 Katana。

OAuth

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

ASP.NET 身份

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

您在 MVC 项目模板中看到它的使用方式是在帐户 Controller 和 CookieAuthenticationMiddleware 中。

引用文献

欧文/武士刀:

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

关于oauth - owin和oAuth2.0有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25498090/

相关文章:

c# - 如何使用应用程序访问 token 使用 publish_stream 而不是 offline_access 发布到 Facebook 用户的 friend 的墙上

php - Google Adwords API "An error has occurred: { "错误”: "invalid_grant" }"

c# - 如何在 .NET 中使用 Facebook signed_request?

asp.net-mvc - 具有相同 MachineKey 的 ASP.NET MVC 和 Webforms 应用程序之间的 OWIN 身份验证 cookie 共享

c# - OWIN 启动 : Entry point was not found

c# - 从字符串加载 .Net 中的 Jira 公共(public)证书(如何将 ASN.1 编码的 SubjectPublicKeyInfo 转换为 .Net 中的 X509 证书)

objective-c - 脂肪 secret API "invalid signature"

javascript - JqueryCode 将当前页面转换为 PDF

asp.net-mvc - ASP.NET MVC 5 : Endless redirect to the login page using the site template

c# - 我是否必须检查 ApplyResponseChallengeAsync 中的响应状态?