Когда вы создаете область в keycloak с политикой паролей и хотите исключить администратора из этой политики, выполните следующие действия:
Когда пользователь создает новую область, например, «FooRealm» keycloak добавляет клиента-брата в мастер-область с суффиксом -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);