Защитите архив с помощью Keycloak и настройте один или несколько Identity Providers - Google as Identity Provider - Github as Identity Provider
Mapper(s) для назначения ролей пользователям, аутентифицирующимся через Social Identity Provider, чтобы
обеспечить доступ и/или права на изменение в архиве. Перейдите на вкладку Mappers созданных Identity Providers в
Keycloak и нажмите Create. Hardcoded Role в выпадающем списке Mapper Type. Role выберите Select Role как user. Введите Name для вашего маппера и нажмите Save.Select Role укажите
admin.admin этим пользователям.По умолчанию, когда пользователь входит через Social Identity Provider и у него в профиле у этого провайдера не заданы
поля First/Last name, Keycloak отображает страницу Update Account Information. На этой странице показаны поля
Username, Email, First Name и Last Name. После заполнения этих полей пользователь может перейти на страницу UI
архива.
Если вы хотите отключить этот Update Profile, войдите в консоль администратора Keycloak и перейдите в
Authentication -> Flows -> First Broker Login -> Review Profile(review profile config) -> Actions (Config) ->
Update Profile on First Login -> OFF и нажмите Save.
По умолчанию, когда пользователь впервые входит через Social Identity Provider, Keycloak проверяет в своей базе данных и
создаёт для него уникального пользователя. При последующих входах Keycloak связывает ID пользователя с пользователем,
вошедшим через Social Identity Provider. После входа в UI архива любой пользователь (включая тех, кто вошёл через
Social Identity Provider) имеет возможность Edit Account в Keycloak. Это также позволяет им обновлять свои пароли. В
случае пользователя, вошедшего через Social Identity Provider, Keycloak не хранит пароль для этого пользователя в своей
базе данных (или в LDAP, если настроено User Federation). Это означает, что пользователь, вошедший в UI архива через
Social Identity Provider, не может обновить свой пароль, поскольку для этого пользователя нет ранее существовавшего
пароля.
Чтобы позволить пользователям, входящим через Social Identity Providers, обновлять свой пароль, войдите в консоль
администратора Keycloak и перейдите в
Authentication -> Flows -> First Broker Login -> Create User If Unique(create unique user config) -> Actions (Config) ->
Require Password Update After Registration -> ON и нажмите Save.
После этого пользователи, вошедшие через Social Identity Providers, смогут не только обновлять свой пароль через
Edit Account из UI архива, но и смогут напрямую входить по своему email и этому паролю (теперь доступному в БД
Keycloak или LDAP), без необходимости проходить аутентификацию через Social Identity Provider, при последующих входах в
UI архива.
Откройте UI архива и используйте Social Identity Provider для входа.
Примечание : Если пользователь уже входил однажды с email, зарегистрированным у конкретного Social Identity Provider, а
затем решит войти через другой Social Identity Provider с тем же email, Keycloak отобразит страницу
Account already exists с вариантами Review Profile или Add to existing account.
При выборе:
- Add to existing account — и если была настроена опция Update Password on First Logon,
пользователь сможет войти напрямую с паролем, заданным при обновлении пароля при первом входе через первый Social
Identity Provider. При этом второй Social Identity Provider связывается с этим пользователем в Keycloak. Проверить
эту привязку Social Identity Providers можно, войдя в консоль администратора Keycloak и перейдя в
Identity Provider Links у конкретного пользователя, вошедшего через Social Identity Provider.
- Review Profile — Keycloak отображает страницу Update Account Information. Этот вариант бесполезен, поскольку
Keycloak не принимает запрос даже при обновлении полей: email остаётся прежним и используется для идентификации
пользователя в Keycloak.