【发布时间】:2020-12-29 19:02:26
【问题描述】:
我使用 keycloak 11 作为我的 spring boot 服务的 openid 连接提供程序。到目前为止一切正常。
问题:
我有一个使用网络客户端的服务。它嵌套在我的服务中,并使用带有admin-cli 客户端的客户端身份验证。这样可行。当我访问 /users/userId 时,我得到了用户表示。我现在遇到的问题是用户的领域角色没有添加到表示中。
在docs 中,此参数被称为 String [] 并在 UserRepresentation 中标记为可选。
我认为如果我配置 Service account roles -> Client Roles -> realm-management -> realmAdmin ,客户端应该能够查看整个用户输出。
但是如果我使用 postman 并以 ali-admin 的身份调用 api,它不会包含在 JSON 响应中。
我也尝试在我的 KeycloakUserRepresentationModel 中添加属性
public class KeycloakUserRepresentation {
private String id;
private String username;
private String firstName;
private String lastName;
private String email;
private Boolean emailVerified;
private Boolean enabled;
private Map<String, List<String>> attributes;
private String[] realmRoles;
并执行请求。数组 realmRoles 始终为空。
你能告诉我我必须配置什么才能将用户 realmRoles 读取为 admin-cli 吗?
【问题讨论】:
标签: java spring-boot oauth keycloak openid-connect