我们有多个 Web 项目(站点),每个项目都有自己的授权逻辑。今天,我的 CIO 要求我实施 oAuth 并使用它来验证所有站点的用户。
早些时候,我曾为 Google、Facebook、Twitter 和 Microsoft 使用过 oAuth。我在这里有多个问题
- 实施 oAuth 提供者有什么优势
- 通用 oAuth 原则中的最佳方法是什么
- 我可以将此 oAuth 服务器用于单点登录吗
当我有来自 Google 或其他的用户 oAuth 时,我的想法是消除用户在我的网站上注册的努力,而不是使用他/她为 Google 拥有的相同凭据。如果我创建自定义 oAuth,这是我获得的唯一优势吗?
实施oAuth:
- 使用 ApplicationName、ClientID、ClientSecrete 创建一个应用程序实体
- 使用 UserId、UserName、Password、ApplicationID 创建用户实体
- 与每个站点共享唯一的 ClientID 和 Secrete,当用户尝试从该站点登录时,传递 clientID、clientSecrete、UserName、Password 并验证并返回 true 或 false
- 按照类似的流程让用户注册到系统。
在高层次上,我的上述流程是否满足 oAuth 概念?是否有 oAuth 的深入实现细节可供我参考以更好地理解?