自定义oAuth服务器实现及其优点

HaB*_*aBo 6 c# openid oauth openid-provider

我们有多个网络项目(站点),每个项目都有自己的授权逻辑。今天,我的 CIO 要求我实施 oAuth 并使用它来验证所有站点上的用户。

之前我曾在 Google、Facebook、Twitter 和 Microsoft 中使用过 oAuth。我在这里有多个问题

  1. 实施 oAuth 提供程序有哪些优势
  2. 通用 oAuth 原则中的最佳方法是什么
  3. 我可以使用此 oAuth 服务器进行单点登录吗

当我拥有来自 Google 或其他网站的用户 oAuth 时,我们的想法是消除用户在我的网站上注册的麻烦,而不是使用他/她在 Google 上拥有的相同凭据。如果我创建自定义 oAuth,这是我能获得的唯一优势吗?

实施 oAuth:

  • 使用 ApplicationName、ClientID、ClientSecret 创建应用程序实体
  • 使用 UserId、UserName、Password、ApplicationID 创建用户实体
  • 与每个站点共享唯一的 ClientID 和 Secrete,当用户尝试从该站点登录时,传递 clientID、clientSecret、用户名、密码并进行验证并返回 true 或 false
  • 用户按照类似的流程注册到系统。

在较高的层面上,我的上述流程是否满足 oAuth 概念?是否有 oAuth 的深入实现细节可供我参考以获得更好的理解?

Lau*_*nne 1

http://oauth.net/articles/authentication/

这是一本很好的读物,它告诉您应该使用什么而不是 OAuth :=)

https://msdn.microsoft.com/en-us/library/hh291066(v=vs.110).aspx Windows Identity Fundation ...可以帮助您跨不同应用程序和层进行唯一授权。

最后这里有一些如何做的指南:

http://www.c-sharpcorner.com/UploadFile/scottlysle/windows-identity-foundation-and-single-sign-on-sso/