1

我已经构建了一个认证系统,并希望使其成为联合身份验证和授权系统(SSO),如Google+或Facebook。经过研究,我发现在OAuth 2.0之上的OpenID Connect是最好的选择。创建一个OpenID Connect服务器

我认为使用现有的经过良好测试的库会比我自己实现整个堆栈更好,所以我打算使用MITREID Connect。任何意见?

然而,仍然有一些事情我不能确定的:

  1. 我在正确的轨道上?用于openid-connect-server的codebase可以用于我想要构建的内容吗?
  2. 如果是这样,我完成使用OpenID Connect扩展我的系统,我该如何让Web应用程序开发人员在他们的OpenID Connect/OAuth2表单上显示我的登录系统?为了更清楚,我需要提供哪些数据或需要向客户公开哪些API才能开始使用我的系统进行身份验证和授权?

如果我错过了任何关键点,请告诉我。如果我发布了错误的论坛,请随时将帖子移至相应的论坛。

回答

1

我已经建立了一个认证系统,并想使之成为 联合身份验证和授权系统(SSO),例如Google+ 或Facebook。经过研究,我发现OAuth 2.0的顶级 上的OpenID Connect是最好的选择。

恕我直言,你绝对是对的!

我认为这将是更好地使用现有的行之有效的库比 实现我自己的整个堆栈,所以我打算使用MITREID 连接。任何意见?

使用经过良好测试的库是我做的。我用IdentityServer 3。我不知道MITREID。

如果是这样,我完成扩展使用OpenID登录连接我的系统,我怎么 得到Web应用程序开发人员在他们的 ID连接/ OAuth2用户的形式显示我的登录系统?为了更清楚,我需要什么数据来提供 系统以及我需要向客户公开哪些API以开始使用我的 系统进行身份验证和授权?

你,但如果你实现一个很好的测试库有人这样做对你来说,必须实现由ID连接规范中定义的端点。这些是:

  • 授权/验证端点:通过该客户端启动一个auth &的验证流程的一个 - 按照this

  • 令牌端点:一个通过其客户端请求/刷新的令牌 - 按照this

  • 的UserInfo端点:一个通过其客户端获得作用域令牌上,其令牌是由客户拥有 - 按this

  • 发现端点:如果你想,只为让客户自动查找所有暴露的端点 - 按this

欲了解更多详细信息,请IdentityServer documentation。这对OpenID基础知识也很有用(端点部分)。

+0

啊,谢谢!将检查IdentityServer。 –