gpt4 book ai didi

ldap - 将 LDAP 特定属性映射到 Keycloak 角色

转载 作者:行者123 更新时间:2023-12-04 17:54:12 26 4
gpt4 key购买 nike

我在 Keycloak 中设置了 LDAP 连接。我已经设法使用映射器将普通的 LDAP 角色导入到 keycloak 中。在我们的 LDAP 中,我们也将角色映射为用户属性,例如 cn、sn、c ...我们有 属性角色 .当然,从技术角度来看,这些并不是真正的角色,而是用户属性(它们在我们的应用程序中用作角色)。

我想要实现的是将这些用户属性角色(attributeRoles)映射到keycloak中的真实角色。

你们中有人遇到过这个特定的问题并设法以某种方式解决了吗?

任何帮助,将不胜感激。

最佳答案

使用以下代码更新 RoleLDAPStorageMapper 中的 onImportUserFromLDAP:

Map<String, Set<String>> attributes = ldapUser.getAttributes();
for (Map.Entry<String, Set<String>> entry : attributes.entrySet()){
if(entry.getKey().equals(<ATTRIBUTE>)){
// Try to import the attribute to Keycloak roles
importAttributesFunction(user, realm, entry.getValue());
}
}

在这里你有 importAttributesFunction:
public void importAttributesFunction(UserModel user, RealmModel realm, Set<String> sRoles) {
for(String sRole: sRoles){
RoleContainerModel roleContainer = getTargetRoleContainer(realm);
RoleModel role = roleContainer.getRole(sRole);

if (role == null) {
role = roleContainer.addRole(sRole);
}

if(!user.hasRole(role)) {
user.grantRole(role);
}
}
}

希望能帮助到你。

关于ldap - 将 LDAP 特定属性映射到 Keycloak 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com