2

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

有任何想法吗?

4

1 回答 1

2

当您使用密码策略在 keycloak 中创建领域并希望从该策略中排除管理员用户时,请按照以下步骤操作:

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

1- 在这个客户端里面,FooRealm-realm 做这些改变

  • 访问类型 = 机密
  • 标准流启用 = ON 直接访问
  • 授予启用 = ON

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

  • Role Mappings >> Clients Roles 并从下拉菜单中选择同级客户端(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);
于 2019-03-22T12:16:53.070 回答