Не может создать пользователя в 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 ответа
Я столкнулся с той же проблемой. Вот как я это исправил.
Я столкнулся с той же проблемой с KeyCloak 9.0.3. Что в итоге сработало для меня:
- Используйте клиент 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"
Я не уверен, почему, но использование клиента администратора в главной области просто не сработало для меня.
Настройте клиент admin-cli в целевой области с ролью, указанной в правильном ответе выше.
Помимо добавления новой роли в Scope, мне также пришлось добавить роль в роли учетной записи службы.
Токен доступа к учетным данным клиента BTW даже не упоминается как опция в документации Admin Rest API для Keycloak 9.0.3, но он работает.
Если вы не используете admin
пользователь из master
область.
Вы должны назначить соответствующие роли, такие как manage-users
роль от realm-management
клиент для пользователя, которого вы используете для получения экземпляра Keycloak.
Если вы используете
Service Accounts
для аутентификации вам необходимо добавить роли прецедентного ответа во вкладке
Service Accounts Roles