Skip to content

Keycloak

Чтобы настроить Keycloak в качестве IdP:

1. Создайте федерацию

  1. В консоли организации перейдите в раздел Федерации.

  2. Нажмите кнопку Создать.

  3. Укажите значения параметров:

    • имя федерации;
    • роль для пользователей, которые будут авторизоваться через федерацию;

    Примечание

    Полномочия роли будут распространяться на всю организацию.

    • время сессии — период, в течение которого браузер не будет требовать от пользователя повторной аутентификации;
    • (опционально) описание федерации.
  4. Нажмите кнопку Создать.

2. Настройте IdP для федерации

  1. В консоли организации перейдите в раздел Федерации.
  2. Выберите созданную федерацию.
  3. Нажмите кнопку Добавить IdP.
  4. В настройках вашего Keycloak выберите Realm SettingsEndpointsOpenID Endpoint Configuration и скопируйте URL из поля issuer.
  5. Вставьте скопированный URL в поле Issuer в настройках федерации и нажмите кнопку Загрузить. Все необходимые параметры добавятся автоматически.

3. Настройте OIDC-клиент в Keycloak

  1. Авторизуйтесь в административной панели вашего инстанса Keycloak и выберите нужный realm.

  2. Выберите ClientsCreate client и укажите значения параметров:

    • Client TypeOpenID Connect;
    • Client ID — придумайте уникальный идентификатор (сохраните его, он понадобится для настройки OIDC-клиента в MWS);
    • (опционально) имя и описание клиента.
  3. Нажмите кнопку Next.

  4. Укажите значения параметров:

    • Client authentication — выберите Confidential;
    • Authentication flow — оставьте значение по умолчанию Standard flow.
  5. В поле Valid Redirect URLs укажите URL для авторизации:

    https://auth.mws.ru/api/iam/v1/organizations/<идентификатор организации/userFederations/<идентификатор созданной федерации>/providers/<идентификатор провайдера>/login-callback
  6. Нажмите кнопку Save.

  7. Перейдите на вкладку Credentials в настройках клиента. Скопируйте и сохраните Client Secret: он понадобится на следующем шаге.

4. Настройте OIDC-клиент в MWS

  1. В разделе Настройка OIDC-клиента укажите значения параметров:

    • Client ID — уникальный идентификатор, заданный ранее.
    • Client Secret — пароль клиентского приложения для сервера авторизации.
  2. Установите условия, на которых пользователь будет входить в веб-консоль. Для этого выберите один из двух способов получения данных о пользователе:

    • Token Endpoint — данные о пользователе берутся только из токена доступа в момент его получения;
    • Token Endpoint и Userinfo Endpoint — данные берутся из токена доступа, а затем выполняется запрос на получение дополнительной информации.
  3. Нажмите кнопку Далее.

  4. Настройте сопоставление (маппинг) атрибутов:

    • В поле mws.subject укажите атрибут из JWT-токена (claim), значение которого будет использоваться как уникальный идентификатор федеративного пользователя (чаще используются значения sub или email).
    • Настройте дополнительные атрибуты.
  5. Нажмите кнопку Создать.

  6. На странице федерации скопируйте ссылку (Sign In URL) рядом с именем добавленного IdP. Разошлите ее всем пользователям, которые будут авторизоваться через федерацию.