Исключить пользователя с ролью управления областями из политики паролей Keycloak - PullRequest
0 голосов
/ 13 марта 2019

У меня есть пользователь с управлением ролями клиента в области, содержащей политику паролей. Я хочу исключить этого пользователя из политики паролей, так как я использую этого пользователя для выполнения какой-либо операции, выбирая роли, получая всех пользователей через Java API, и я не хочу, чтобы все операции отбрасывались, когда необходимо обновить пароль. Я пытался использовать пользователя с правами администратора из основных областей, но я не получил никакого результата

Есть идеи?

1 Ответ

0 голосов
/ 22 марта 2019

Когда вы создаете область в 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);
...