Keycloak - 是否可以将复合角色及其属性映射到访问令牌?

时间:2020-12-28 16:58:40

标签: java keycloak

我想要完成的是一种将复合角色(及其属性)及其“子”角色映射到访问令牌以使用该数据的方法。

我只在 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

0 个答案:

没有答案