我已经构建了一个身份验证系统,并希望将其作为联合身份验证和授权系统 (SSO),如 Google+ 或 Facebook。经过研究,我发现 OAuth 2.0 之上的 OpenID Connect 是最好的选择。
我认为使用现有的经过良好测试的库比我自己实现整个堆栈更好,所以我打算使用 MITREID Connect .有什么意见吗?
但是,还有一些事情我不确定:
- 我走的路对吗?可以codebase openid-connect-server 用于我要构建的内容?
- 如果是这样并且我完成了使用 OpenID Connect 扩展我的系统,我如何让网络应用程序开发人员在他们的 OpenID Connect/OAuth2 表单上显示我的登录系统?更清楚地说,我需要提供哪些数据或需要公开哪些 API,以便客户开始使用我的系统进行身份验证和授权?
如果我遗漏了任何关键点,请告诉我。如果我在错误的论坛上发帖,请随时将帖子移至适当的论坛。
最佳答案
I have built an authentication system and would like to make it a federated authentication and authorization system (SSO), like Google+ or Facebook. Upon researching, I discovered that OpenID Connect on top of OAuth 2.0 is the best bet.
恕我直言,你绝对是对的!
I think it would be better to use an existing well tested library than to implement the entire stack on my own, so I plan to use MITREID Connect. Any comments?
我所做的就是使用经过良好测试的库。我用了IdentityServer 3 .我不知道 MITREID。
If so and I finish extending my system using OpenID Connect, how do I get web application developers to display my login system on their OpenID Connect/OAuth2 forms? To be clearer, what data do I need to provide or what APIs do I need to expose for clients to begin using my system for authentication and authorization?
但是,如果您实现了一个经过良好测试的库,那么有人为您完成了该库,则必须实现由 OpenID Connect 规范定义的端点。它们是:
授权/身份验证端点:客户端通过其启动身份验证和身份验证流程的端点 - 根据 this
token 端点:客户端请求/刷新 token 的端点 - 根据 this
UserInfo 端点:客户端通过该端点获得其 token 归客户端所有的 token 的范围 - 根据 this
发现端点:如果您愿意,只需让客户端自动找到所有公开的端点 - 根据 this
更多详情,查看IdentityServer documentation .它也适用于 OpenID 基础知识(端点部分)。
关于java - 创建 OpenID Connect 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44007807/