面向公共客户端的Spring Boot 2授权服务器(PKCE)

时间:2020-05-26 10:59:59

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

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

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

我还发现spring建议将Keycloak用作授权服务器,但不适合我的情况。 我们需要能够针对远程服务获取并验证用户,然后仅将授权服务器用于生成和验证jwt令牌。据我所知Keycloak还应该拥有用户权利吗?因此,最好的解决方案是自定义spring独立授权服务器。有可能吗?谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:2)

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

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