【问题标题】:Spring Boot 2 Authorization Server for public clients (PKCE)面向公共客户端的 Spring Boot 2 授权服务器 (PKCE)
【发布时间】:2020-09-13 03:59:55
【问题描述】:

是否可以在当前版本的 Spring Security 中为 PKCE 身份验证创建授权服务器?

我进行了研究,发现了这个授权服务器项目https://github.com/spring-projects-experimental/spring-authorization-server,但该项目没有可用的示例。

我还发现 spring 推荐 Keycloak 作为授权服务器,但它不适合我的情况。 我们需要能够针对远程服务获取和验证用户,然后仅使用授权服务器来生成和验证 jwt 令牌。据我所知,Keycloak 也应该拥有用户,对吗?所以最好的解决方案是自定义 spring 独立授权服务器。以某种方式可能吗?谢谢!

【问题讨论】:

    标签: spring spring-boot spring-security keycloak spring-security-oauth2


    【解决方案1】:

    你可以看看这个项目:CloudFoundry User Account and Authentication (UAA) ServerUAACloud Foundry 的(Spring MVC)组件,但它可以用作独立的 OAuth2 server。它可以支持外部认证服务。还有一个实现 PKCE 的 Pull Request:https://github.com/cloudfoundry/uaa/pull/939(尚未合并,但正在审核中)。

    您可以在baeldung.com 上找到有关如何使用UAA 的示例。

    【讨论】:

      【解决方案2】:

      据我所知,Spring 框架还有一种授权服务器的实现。它是spring-security-oauth 项目的一部分。但是该项目已进入维护模式。

      根据此migration guide,将创建新的授权服务器项目(您已经找到)以更改旧解决方案。

      在我看来,现在有几种可能的选择:

      1. 使用旧的旧版spring-security-oauthold auth server 的更多示例
      2. 使用 Keycloak、Auth0、Okta 等外部服务

      【讨论】:

      • 但如果我说得对的话,旧的 oauth 项目中不支持 PKCE。那就是为什么问这个问题。无法使用外部服务,因为我们需要从不同的身份提供者获取用户,然后自己生成 jwt。
      • 前段时间我对 spring auth server 的可能选项进行了一些研究,不幸的是,我没有以任何方式从我的答案中找到任何选项,祝你好运解决你的问题
      猜你喜欢
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 2018-04-01
      • 1970-01-01
      • 2018-08-17
      相关资源
      最近更新 更多