从keycloak的密码策略中排除具有域管理角色的用户

问题描述 投票:0回答:1

我在一个包含密码策略的领域中有一个具有Client Roles领域管理的用户。我想从密码策略中排除此用户,因为我使用此用户执行某些操作获取角色通过Java API获取所有用户,并且我不希望在需要更新密码时删除所有操作。我试图使用主域中的管理员用户,但我没有得到任何结果

有任何想法吗?

keycloak java-client password-policy
1个回答
0
投票

使用密码策略在keycloak中创建领域并且要从此策略中排除admin用户时,请执行以下步骤:

当用户创建新领域时,例如“FooRealm”keycloak在主域内添加带有后缀-realm的兄弟客户端,在这种情况下,我们将看到FooRealm-realm

1-在这个客户端内部,FooRealm-realm进行这些更改

  • 访问类型=机密
  • 标准流量启用=开启直接访问
  • Grants Enables = ON

2-在主域内创建用户,在用户详细信息中,转到:

  • 角色映射>>客户端角色并从下拉菜单中选择兄弟客户端(FooRealm-realm)并确保它拥有内部的所有角色

3-现在从Slave领域FooRealm中获取所有用户

Keycloak keycloak = KeycloakBuilder.builder()
        .serverUrl("http://localhost/auth")
        .realm("master")
        .grantType(OAuth2Constants.PASSWORD)
        .clientId(FooRealm-realm)
        .clientSecret("7f0080cf-xxxx-xxxxx-9115-xxxxxxxxxx")
        .username("sysadmin")
        .password("x123456")
        .build();
RealmResource realmResource = keycloak.realm("FooRealm");

realmResource.users().list(0, 1000);
© www.soinside.com 2019 - 2024. All rights reserved.