我想要完成的是一种将复合角色(及其属性)及其“子”角色映射到访问令牌以使用该数据的方法。
我只在 keycloak 管理控制台中看到用户属性映射器,但对于角色属性,我没有看到。另外,我们如何维护复合角色的结构/粒度,以检查它们聚合了哪些角色?
主要思想是这样的:
用户 ->(具有多个属性的复合角色 -> 角色)
我也尝试通过这种方式获取我需要的信息,但没有成功,因为它在尝试获取 403 Forbidden exception
时会抛出 http realmResource.toRepresentation
。
我在做什么:
String keycloakRealm = tenantContext.getOrganizationRequestConfig().getKeycloakRealm();
RealmResource realmResource = keycloak().realm(keycloakRealm);
if (realmResource != null) {
List<RoleRepresentation> rolesRepresentationList= realmResource.toRepresentation().getRoles().getRealm();
for (RoleRepresentation rolesRepresentation : rolesRepresentationList) {
Composites composites = rolesRepresentation.getComposites();
Map<String, List<String>> attributes = rolesRepresentation.getAttributes();
}
}
如果无法使用这种方法(用户 ->(具有多个属性的复合角色 -> 角色)),你们有什么建议或替代方法吗?
想法是将其映射到访问令牌中,但我发现很难在令牌中使用此结构
谢谢
注意:我需要与 Azure AD 集成
编辑:客户端协议是 OIDC