spring - 为 Oauth2 Spring Boot 创建自定义 OpenId 提供程序

标签 spring spring-security oauth-2.0 openid openid-provider

我使用 Oauth2 框架进行授权和访问控制,以保护我的 Spring Boot 微服务 api。 Oauth2 框架工作正常,但现在我的客户需要一个专用的 OpenId 提供程序,用于在 Oauth2 框架之上进行身份验证。我已经在 Google 上进行了一轮搜索,但找不到太多用于为 Oauth2 实现 Own OpenId Provider 的资源。我浏览了很多博客,可以理解,当我们想要委托(delegate) Oauth2 进行身份验证时,基本上会使用 OpenId。 OpenId 是在 Oauth2 之上创建的,但找不到太多资源来激活或实现它。

谁能帮我解决这个问题

我使用 Oauth2 和 Spring Framework 完成的完整源代码如下所示

<强> oauth2-spring

最佳答案

根据 spring-projects/OAuth 2.0 Features Matrix 中的“spring-security ” ,Spring 框架对于 OpenID Connect 来说并不是一个好的起点。所有新项目(Spring Security、Spring Cloud Security 和 Spring Boot OAuth2)均不支持授权服务器。另一方面,旧项目(Spring Security OAuth)存在架构问题,阻碍了 OpenID Connect 支持。

website of OpenID Connect说“OpenID Connect 1.0 是 OAuth 2.0 协议(protocol)之上的一个简单例份层。”这句话可能会给人这样的印象:OpenID Connect 可以在现有 OAuth 2.0 实现之上逐步实现。然而,事实并非如此。一个证据是spring-security-oauth Issue 619您会看到该项目已放弃支持 OpenID Connect。如果有兴趣,请参阅 "Full-Scratch Implementor of OAuth and OpenID Connect Talks About Findings " 中的“5. 响应类型”以了解更多详细信息。

存在许多支持 OpenID Connect 的实现。你为什么不检查一下certified implementations的列表呢? ?

更新(2019 年 11 月 14 日):

Spring Security 团队决定不再为授权服务器提供支持。请参阅他们的 announce了解详情。

关于spring - 为 Oauth2 Spring Boot 创建自定义 OpenId 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48730826/

相关文章:

javascript - 错误: origin_mismatch

spring-boot - POST 请求中的 Oauth2 纯文本凭据?

node.js - Passport.js 登录事件函数未被调用

java - @Inject 和 java.security.Provider 组合是否给出了实例的范围配置?

java - Spring 异步和分时度假

spring-security - 如何在 Spring Secrity 中找出用于授权授权类型的有效值

Spring Security 5自定义failureForwardUrl

java - Spring:setAutoGrowCollectionLimit 不起作用

java - 为什么我的编译文件夹有一个名为stick package path的子文件夹

java - 使用 Struts 2 实现 Spring Security