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

时间:2015-04-15 21:01:12

标签: c# oauth openid openid-provider

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

之前我曾将oAuth用于谷歌,Facebook,Twitter和微软。我在这里有多个问题

  1. 实施oAuth提供程序有什么好处
  2. 通用oAuth原则中最好的方法是什么
  3. 我可以将此oAuth服务器用于单点登录
  4. 当我有来自谷歌或其他人的用户oAuth时,我们的想法是消除用户在我的网站上注册的努力,而不是使用他/她为谷歌提供的相同凭据。 这是我创建自定义oAuth时唯一的优势吗?

    实施oAuth:

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

    我的上述流程是否会满足oAuth概念?是否有一个深入的oAuth实现细节,我可以参考以获得更好的理解?

1 个答案:

答案 0 :(得分: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/