gpt4 book ai didi

Spring Security 和 OpenID Connect (OIDC)

转载 作者:行者123 更新时间:2023-12-04 02:24:27 26 4
gpt4 key购买 nike

在我当前的项目中,我全面使用 Spring Security OAuth (http://projects.spring.io/spring-security-oauth/) 项目来保护我们的资源 (Web API)。到目前为止一切正常。

我现在正在开发客户端,并且正在寻找对身份验证方案的良好支持(因为 OAuth 是一种授权协议(protocol))。经过长时间的互联网搜索,我很确定我应该使用 OpenID Connect (http://openid.net/connect/) 来满足这个要求,因为它是“OAuth 2.0 之上的简单例份层”(但我知道,没有“简单”在安全主题的情况下)。

可悲但真实的是,我无法在 Spring Security 中找到有关 OpenID Connect 支持(不要与“纯”OpenID 混淆)的任何好的资源。 https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server 上有一个 OpenID Connect 引用实现。但我期望在 Spring Security 中/从 Spring Security 中直接获得类似的东西,并提供全面的文档等等。我在这里找到了大约 2 年的讨论 https://github.com/spring-projects/spring-security-oauth/issues/220但目前的状态是什么?寻找“OpenID Connect 的 Spring Security 支持”不会提供任何“有形”的结果。

您是否有任何关于在 Spring Security 的帮助下实现 OpenID Connect 的信息、文档和/或经验?

最佳答案

之前 OpenID Connect出现,实际上可以假设请求参数的值 response_type可以是 code (对于 authorization code flow )或 token (对于 implicit flow )。但是,现在授权服务器实现必须能够处理(codetokenid_token)和 none 的任意组合。 .详细信息在“OpenID Connect Core 1.0, 3. Authentication”和“OAuth 2.0 Multiple Response Type Encoding Practices”中进行了描述。
作为支持 OpenID Connect 的第一步,Spring Security OAuth 必须为 response_type 变得灵活。 .您可以在“Issue 619: Handling additional response_types”上找到它的请求。但是,很难更改只需要 code 的现有代码。或 token到一个可以一次接受多个值的新值。在撰写本文时,Issue 619 的最新评论made on Dec. 12, 2015 以如下摘录的句子结尾。

Any comments are more than welcome as this turned out to be (as I predicted) a large refactor exercise.


如果 Spring Security OAuth 纯粹是一个自愿的项目,没有任何商业机构的支持,那么不太可能发生如此大的变化。
我的经验:大约两年前,我从头开始编写了一个 OAuth 2.0 服务器。之后我才知道 OpenID Connect 的存在。在阅读了 OpenID Connect 相关的规范之后,我终于得出了一个结论,即转储现有的实现并重新从头开始重新编写服务器。
如您所料,OpenID Connect 一点也不简单。
另见“5. 响应类型”
Full-Scratch Implementor of OAuth and OpenID Connect Talks About Findings”。

**更新**(2017 年 11 月 23 日)
Spring 框架上的授权服务器和 OpenID 提供程序
https://github.com/authlete/spring-oauth-server
Spring 框架上的资源服务器
https://github.com/authlete/spring-resource-server
spring-oauth-server 支持 OAuth 2.0 和 OpenID Connect。 spring-resource-server 具有在“OpenID Connect 1.0, 5.3. UserInfo Endpoint”中定义的 UserInfo Endpoint 的实现。两种实现都不使用 Spring Security OAuth但使用 Spring BootAuthlete .
博客: Spring + OAuth 2.0 + OpenID Connect

关于Spring Security 和 OpenID Connect (OIDC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35968487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com