带有 Google 登录和基于角色的访问的 Keycloak 不起作用

问题描述 投票:0回答:1

我有一个使用 keycloak 的 Spring Boot 应用程序,我为用户提供了通过 google 登录的选项,现在用户可以通过 google 登录并且正在生成令牌,但是当我检查 JWT 时我不'无法获取我为用户设置的角色,并且在我的 Spring Boot 应用程序中,用户无法访问必须具有用户或管理员权限的路由。我的目标是创建一个用户和管理员角色,并创建只有用户具有此类角色才能访问的路由,我还希望所有用户默认都具有用户角色,并且需要手动设置管理员角色。

我尝试了几种不同的方法来创建角色,但没有成功。我不确定我创建的角色是否错误,或者在进行基于身份提供者角色的访问时需要添加另一个步骤。我感谢任何帮助!

在客户端创建角色:

尝试创建领域角色:

尝试创建客户端和领域角色的复合角色:

尝试向身份提供者添加映射器:

最后我尝试将角色直接添加到用户:

Spring Boot应用:

我的应用程序.yml:

版本:

钥匙斗篷:24.0.2
春季启动:3.1.5

spring spring-boot spring-security keycloak
1个回答
0
投票

令牌将包含声明“realm_access”或“groups”下的角色。您必须将它们映射到以 ROLE_ 开头的权限,如在 https://www.baeldung.com/spring-boot-keycloak:简而言之,您必须在启动时创建一个 GrantedAuthoritiesMapper bean,然后在 Spring Security 中验证请求时将使用该 bean。

© www.soinside.com 2019 - 2024. All rights reserved.