Не может создать пользователя в keycloak. Получение статуса 403

Я пытаюсь получить доступ к созданию пользователя в keycloak программным путем. Но я получаю 403 в качестве кода состояния. Я перехожу по ссылке ниже.

https://technology.first8.nl/programmatically-adding-users-in-keycloak/

Может кто-нибудь мне помочь? Заранее спасибо

Я использовал следующий код для создания пользователя

Keycloak kc = Keycloak.getInstance(
                     "http://{server name}:8080/auth",
                     "{realm name}", // the realm to log in to
                     "{useraname}", 
                     "{password}",  // the user
                     "{client id}",
                     "{client secret key}");

            CredentialRepresentation credential = new CredentialRepresentation();
            credential.setType(CredentialRepresentation.PASSWORD);
            credential.setValue("test123");
            UserRepresentation user = new UserRepresentation();
            user.setUsername("codeuser");
            user.setFirstName("sampleuser1");
            user.setLastName("password");

            user.setCredentials(Arrays.asList(credential));
            user.setEnabled(true);
            Response result = kc.realm("{realm name}").users().create(user);

response.status идет как 403

4 ответа

Я столкнулся с той же проблемой. Вот как я это исправил.

  1. Создайте роль, которая имеет по крайней мере роль управления областью manage-users введите описание изображения здесь

введите описание изображения здесь

  1. Перейти к вашему клиенту Scope вкладка и добавьте роль к вашему Realm Roles введите описание изображения здесь

Я столкнулся с той же проблемой с KeyCloak 9.0.3. Что в итоге сработало для меня:

  1. Используйте клиент admin-cli с учетными данными клиента в целевой области (где я пытаюсь создать пользователя)
curl \
  -d "client_id=admin-cli\
  -d "client_secret=<YOUR_CLIENT_SECRET>" \
  -d "grant_type=client_credentials" \
  "http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token"

Я не уверен, почему, но использование клиента администратора в главной области просто не сработало для меня.

  1. Настройте клиент admin-cli в целевой области с ролью, указанной в правильном ответе выше.

  2. Помимо добавления новой роли в Scope, мне также пришлось добавить роль в роли учетной записи службы.

Токен доступа к учетным данным клиента BTW даже не упоминается как опция в документации Admin Rest API для Keycloak 9.0.3, но он работает.

Если вы не используете admin пользователь из master область.

Вы должны назначить соответствующие роли, такие как manage-users роль от realm-management клиент для пользователя, которого вы используете для получения экземпляра Keycloak.

Добавление ролей управления областями для пользователя

Если вы используете Service Accounts для аутентификации вам необходимо добавить роли прецедентного ответа во вкладке Service Accounts Roles

Как показано ниже

Другие вопросы по тегам