java - 创建 OpenID Connect 服务器

标签 java single-sign-on openid-connect federated-identity openid-provider

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

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

但是,还有一些事情我不确定:

  1. 我走的路对吗?可以codebase openid-connect-server 用于我要构建的内容?
  2. 如果是这样并且我完成了使用 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/

相关文章:

java - 在 spring boot 中使用默认的 objectmapper 注册 JavaTimeModule

java - 如何从另一个泛型类参数转换泛型参数?

azure - 使用 Azure Active Directory 或 ADFS 或 AD 进行 SSO

oauth-2.0 - OAuth 2.0 和 OpenID Connect

oauth-2.0 - Azure AD B2C 不返回刷新 token

oauth-2.0 - OpenID 为当前登录用户以外的其他用户连接 Userinfo 端点

java - JPA:关于在删除之前合并实体的问题

java - Java 中的对象分配和 GC 行为

java - 使用 SAML (SSO) 的 Web 服务安全性 - 如何?

java - 将 Java Web App 与 SAML SSO 集成