创建一个OpenID Connect服务器

5
我已经构建了一个身份验证系统,并希望将其打造成联合身份验证和授权系统(SSO),类似于Google+或Facebook。经过研究,我发现在OAuth 2.0之上使用OpenID Connect是最好的选择。
我认为使用现有的经过充分测试的库比自己实现整个堆栈要好,因此我计划使用MITREID Connect。有什么意见吗?
然而,我仍然有几件事情不确定:
  1. 我是否走在正确的道路上?openid-connect-server的codebase能否用于我想要构建的内容?
  2. 如果是这样,当我使用OpenID Connect扩展我的系统后,如何让Web应用程序开发人员在他们的OpenID Connect/OAuth2表单中显示我的登录系统?更明确地说,我需要提供哪些数据或公开哪些API,以便客户开始使用我的系统进行身份验证和授权?

如果我漏掉了任何关键点,请告诉我。如果我在错误的论坛上发布,请随意将帖子移动到适当的论坛。

1个回答

7
我已经建立了一个认证系统,并希望将其变成联合身份验证和授权系统(SSO),类似于Google+或Facebook。经过研究,我发现OpenID Connect在OAuth 2.0之上是最好的选择。
在我看来,你绝对是正确的!
我认为最好使用现有的经过充分测试的库,而不是自己实现整个堆栈,因此我计划使用MITREID Connect。有什么评论吗?
使用经过充分测试的库就像我所做的那样。我使用了IdentityServer 3。我不知道MITREID。
如果我扩展了我的系统使用OpenID Connect,那么如何让Web应用程序开发人员在他们的OpenID Connect/OAuth2表单上显示我的登录系统?更清楚地说,我需要提供什么数据或公开哪些API,以便客户开始使用我的系统进行身份验证和授权?
你必须实现OpenID Connect规范定义的端点,但如果你使用一个经过充分测试的库,那么别人已经为你完成了这项工作。这些端点包括:
  • 认证/授权端点:客户端通过此端点启动身份验证和授权流程 - 根据this

  • 令牌端点:客户端通过此端点请求/刷新令牌 - 根据this

  • 用户信息端点:客户端通过此端点获得拥有该客户端所拥有的令牌的范围 - 根据this

  • 发现端点:如果您希望让客户端自动查找所有公开的端点 - 根据this

有关更多详细信息,请查看IdentityServer文档。 这对于OpenID基础知识也很有用(端点部分)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接