如何将现有用户角色映射到keycloak中的自定义用户存储提供程序?

lak*_*nka 4 single-sign-on spring-boot keycloak

我有简单的 Spring Boot 应用程序,它使用 keycloak SSO 和自定义用户存储提供程序。无需用户角色,身份验证即可正常工作。但我需要知道如何将现有用户角色与自定义用户存储提供程序映射。有谁知道如何将现有用户角色与 keycloak 用户存储提供商映射?

lak*_*nka 11

终于找到了一种映射角色的方法。

将角色添加到领域并重写 AbstractUserAdapterFederatedStorage.getRoleMappingsgetRoleMappings() 方法。

public Set<RoleModel> getRoleMappings() {
    Set<RoleModel> roles = new HashSet();
    Iterator rolesItr = userEntity.getRoles().iterator();

    while(rolesItr.hasNext()) {
        roles.add(realm.getRole(((Role)rolesItr.next()).getName()));
    }
    return roles;
}
Run Code Online (Sandbox Code Playgroud)