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

时间:2019-03-13 15:24:29

标签: keycloak java-client password-policy

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当您在带有密码策略的keycloak中创建领域,并且想要从该策略中排除管理员用户时,请执行以下步骤:

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

1-在此客户端中,FooRealm-realm进行了这些更改

  • 访问类型=机密
  • 启用标准流程=启用直接访问
  • 启用补助=开启

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

  • 角色映射>>客户端角色,然后从下拉菜单中选择同级客户端 (FooRealm-realm),并确保它是内部所有角色的全部

3-现在要从从属领域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);
相关问题