如何在 KeyCloak 中获取复合角色

Posted

技术标签:

【中文标题】如何在 KeyCloak 中获取复合角色【英文标题】:How to get Composite Roles in KeyCloak 【发布时间】:2021-02-25 07:59:01 【问题描述】:

我在我的 Spring Boot 应用程序中使用 keycloak-admin-client 11.0.3。我能够从 KeyCloak 获得所有角色。我将一个角色作为复合角色并将角色分配给该角色。当我尝试获取该复合角色时,它说角色是复合的,但复合为空。你知道这背后的原因吗?你可以在下面找到我的实现和截图。

   Keycloak keycloak = Keycloak.getInstance(
     "http://localhost:8080/auth",   
     "master",                       
     "admin",                        
     "admin",                       
     "admin-cli",                    
     "");       
                 
  List<RoleRepresentation> roleRepresentationList = keycloak.realm("master").roles().list();                                         
 for(RoleRepresentation roleRepresentation : roleRepresentationList)                                                               
     System.out.println(roleRepresentation.getComposites());      

这就是我生成 Sales Austria 的方式:

【问题讨论】:

【参考方案1】:

代替:

keycloak.realm("master").roles().list(); 
                      

使用:

 keycloak.realm("master").toRepresentation().getRoles().getRealm();

【讨论】:

以上是关于如何在 KeyCloak 中获取复合角色的主要内容,如果未能解决你的问题,请参考以下文章

如何激活keycloak的REST API?

如何获取访问令牌中的角色:keycloak

使用 keycloak 在 servlet 应用程序中获取用户角色

何时在 Keycloak 中使用领域角色?

如何通过ID获取其他用户信息(用户名,名字)? [Keycloak]

如何在没有管理员帐户的情况下通过 REST 获取 Keycloak 用户