Предоставьте разрешения учетной записи службы клиента Keycloak для создания пользователей сферы без использования широкой роли управляющих пользователей.
У меня есть веб-приложение, которое использует Keycloak для IdM.
Я использую учетные данные пароля владельца ресурса или поток прямого предоставления для аутентификации, которая использует вызовы API REST для /auth/realms/{realm}/protocol/openid-connect/token
вместо браузера перенаправляет, чтобы получить пользователю JWT.
Я хотел бы реализовать аналогичный рабочий процесс для регистрации пользователей.
Глядя на документацию Keycloak, кажется, что API администратора Keycloak предоставляет конечную точку для этого в / auth / admin / realms / {realm} / users.
Чтобы позволить клиентам взаимодействовать с API администратора Keycloak, вам необходимо создать учетную запись службы клиента и связать ее с ролью Keycloak с достаточными привилегиями для управления пользователями сферы.
Ожидаемый подход для этого, по-видимому, заключается в применении определенной роли области " управляющие пользователи" к учетной записи службы клиента. Это больше разрешений, чем я хотел бы предоставить клиенту.
Есть ли способ предоставить учетной записи службы клиента только возможность создавать новых пользователей, а не полный набор разрешений, который предоставляется управляющим пользователям?
1 ответ
Действительно, кажется, что вы не можете редактироватьmanage-users
роль или создайте новую с более точным управлением с консоли. Глядя на исходный код, вам, вероятно, придется разветвить репозиторий и добавить ожидаемое поведение.
Кажется, способ состоит в том, чтобы создать новую переменную вAdminRoles.java
файл типа:
public static String CREATE_USERS = "create-users";
Тогда используйте его только в тех местах, гдеMANAGER_USERS
enum используется для создания пользователей в исходном коде, похоже, он находится подUserPermissions.java
,RolePermissions.java
,GroupPermissions.java
иRealmAuth.java
файлы.
Затем создайте собственный дистрибутив keycloak, следуя официальному руководству:https://github.com/keycloak/keycloak#building-from-source .