oauth-2.0 Keycloak Spring安全适配器如何使用公共Keycloak客户端验证访问令牌?

vaj7vani  于 2022-10-31  发布在  Spring
关注(0)|答案(1)|浏览(161)

我的理解是,Keycloak令牌自检不能使用公共客户端调用。但是不知何故,Keycloak Spring Security Adapter验证了访问令牌,即使keycloak.public-client=true。我试图深入研究代码,但无法找到答案。
我的问题是,如何使用公共客户端执行验证?Keycloak Spring安全适配器是否有一些内置的解决方案?

7eumitmz

7eumitmz1#

JWT验证不需要将令牌提交给它的颁发者,只需要服务器公钥(根据定义,它是公共的)。
org.springframework.security.oauth2.jwt.JwtDecoder实现(如NimbusJwtDecoder)检查如expiss声明的内容以及令牌签名。
Keycloak发布JWT访问令牌。配置了JWT解码器的资源服务器中的Spring安全性不需要反省JWT,它只读取它。
您可以使用https://jwt.io之类的工具打开JWT访问令牌,并研究它所包含的数据(并确定可以基于它设置哪些安全规则)。

PS

Keycloak security adapters are deprecated。不要使用它。请使用以下任一项:

相关问题