【问题标题】:Creating Custom OpenId Provider for Oauth2 Spring Boot为 Oauth2 Spring Boot 创建自定义 OpenId 提供程序
【发布时间】:2018-07-21 16:47:00
【问题描述】:

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

谁能帮我解决这个问题

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

oauth2-spring

【问题讨论】:

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


【解决方案1】:

我认为首先实现 OAuth2 代码流会更容易开始。然后添加隐式流,最后添加 OpenID Connect 部分。

如果您想拥有一个认真的 OpenID 提供程序,我建议不要从头开始实施,因为有很多需要正确处理的细节。相反,我建议使用可以集成到现有系统中的 Hydra 之类的东西。

从头开始创建了一个 OpenID 提供程序 (SimpleLogin.io),我可以说几乎需要永远 100% 符合协议...

【讨论】:

    【解决方案2】:

    根据 spring-projects/spring-security 中的“OAuth 2.0 Features Matrix”,Spring Framework 不是 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 协议之上的一个简单身份层。” 这句话可能会给人一种印象,即 OpenID Connect 可以在现有的基础上实现OAuth 2.0 逐步实现。然而,事实并非如此。一个证据是spring-security-oauthIssue 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 了解详情。

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 1970-01-01
      • 2022-08-04
      • 2019-05-16
      • 1970-01-01
      • 2017-11-21
      • 2016-03-26
      • 1970-01-01
      • 2016-01-25
      相关资源
      最近更新 更多