Keycloak
Чтобы настроить Keycloak в качестве IdP:
1. Создайте федерацию
В консоли организации перейдите в раздел Федерации.
Нажмите кнопку Создать.
Укажите значения параметров:
- имя федерации;
- роль для пользователей, которые будут авторизоваться через федерацию;
Примечание
Полномочия роли будут распространяться на всю организацию.
- время сессии — период, в течение которого браузер не будет требовать от пользователя повторной аутентификации;
- (опционально) описание федерации.
Нажмите кнопку Создать.
2. Настройте IdP для федерации
- В консоли организации перейдите в раздел Федерации.
- Выберите созданную федерацию.
- Нажмите кнопку Добавить IdP.
- В настройках вашего Keycloak выберите Realm Settings → Endpoints → OpenID Endpoint Configuration и скопируйте URL из поля
issuer. - Вставьте скопированный URL в поле Issuer в настройках федерации и нажмите кнопку Загрузить. Все необходимые параметры добавятся автоматически.
3. Настройте OIDC-клиент в Keycloak
Авторизуйтесь в административной панели вашего инстанса Keycloak и выберите нужный realm.
Выберите Clients → Create client и укажите значения параметров:
- Client Type —
OpenID Connect; - Client ID — придумайте уникальный идентификатор (сохраните его, он понадобится для настройки OIDC-клиента в MWS);
- (опционально) имя и описание клиента.
Нажмите кнопку Next.
Укажите значения параметров:
- Client authentication — выберите
Confidential; - Authentication flow — оставьте значение по умолчанию
Standard flow.
В поле Valid Redirect URLs укажите URL для авторизации:
https://auth.mws.ru/api/iam/v1/organizations/<идентификатор организации/userFederations/<идентификатор созданной федерации>/providers/<идентификатор провайдера>/login-callbackНажмите кнопку Save.
Перейдите на вкладку Credentials в настройках клиента. Скопируйте и сохраните Client Secret: он понадобится на следующем шаге.
4. Настройте OIDC-клиент в MWS
В разделе Настройка OIDC-клиента укажите значения параметров:
- Client ID — уникальный идентификатор, заданный ранее.
- Client Secret — пароль клиентского приложения для сервера авторизации.
Установите условия, на которых пользователь будет входить в веб-консоль. Для этого выберите один из двух способов получения данных о пользователе:
- Token Endpoint — данные о пользователе берутся только из токена доступа в момент его получения;
- Token Endpoint и Userinfo Endpoint — данные берутся из токена доступа, а затем выполняется запрос на получение дополнительной информации.
Нажмите кнопку Далее.
Настройте сопоставление (маппинг) атрибутов:
- В поле
mws.subjectукажите атрибут из JWT-токена (claim), значение которого будет использоваться как уникальный идентификатор федеративного пользователя (чаще используются значенияsubилиemail). - Настройте дополнительные атрибуты.
Нажмите кнопку Создать.
На странице федерации скопируйте ссылку (Sign In URL) рядом с именем добавленного IdP. Разошлите ее всем пользователям, которые будут авторизоваться через федерацию.