Настройка SSO провайдера Keycloak для протокола OAuth 2.0

Настраивайте вход в личный кабинет и на онлайн-мероприятия с использованием провайдера Keycloak для протокола авторизации OAuth 2.0

Если вы используете Keycloak для аутентификации и авторизации пользователей, то теперь вы можете настроить возможность входа на онлайн-мероприятия и в личный кабинет МТС Линк с использованием протокола OAuth 2.0.

Keycloak — продукт с открытым кодом для реализации SSO с возможностью управления доступом. Обеспечивает аутентификацию и авторизацию пользователей.


Инструкции для других протоколов и провайдеров идентификации:

На текущий момент функционал находится на стадии тестирования и постепенного релиза.

Если вы хотите получить ранний доступ, пожалуйста, обратитесь к персональному менеджеру или в службу технической поддержки.


Для настройки необходимо выполнить следующие действия.


Шаг 1. Настраиваем профиль Keycloak

  1. Заходим в учетную запись администратора Keycloak и в левом верхнем углу выбираем нужную группу пользователей (Realm):

    Или создаем новую, нажав на "Create realm". При создании есть возможность загрузить файл JSON, включающий данные о пользователях, ролях, группах, клиентах, настройках аутентификации и так далее.

  2. В разделе "Clients" выбираем нужный клиент и открываем его по двойному клику мыши:

  3. На вкладке "Settings" понадобится параметр "Client ID":

  4. На вкладке "Credentials" понадобится параметр "Client secret":

  5. В разделе "Clients" заходим в нужный клиент, на вкладке "Client scopes" выбираем вариант, специализированный для этого клиента (в столбце "Description" будет описание вида "Dedicated scope and mappers for this client") и заходим в него:

  6. Если на вкладке "Mappers" отсутствуют какие-либо объекты, нажимаем на "Configure a new mapper" в центре окна:    Если на вкладке "Mappers" уже есть добавленные ранее объекты, нажимаем на "Add mapper" и выбираем "By configuration":

  7. В обоих случаях откроется список, в котором надо нажать на "User Attribute":  После этого сразу откроется страница настроек атрибута.

  8. В настройках атрибута нужно задать параметр "Name" (любое понятное имя атрибута), выбрать значение "middleName" (Отчество) для параметра "User Attribute" и в качестве значения параметра "Token Claim Name" задать "middle_name". Важно указать его точно в таком виде, так как МТС Линк будет ожидать "Отчество" именно под таким ключом.
    Ниже необходимо включить опцию "Add to userinfo", если она не включена, и нажать на "Save":

  9. Если при заполнении параметра "User Attribute" будет отсутствовать значение "middleName", то нужно его создать. Для этого в разделе "Realm settings" на вкладке "User profile" нажимаем на кнопку "Create attribute":
    Создайте атрибут "middleName" с настройками, как на рисунке:Теперь этот атрибут будет доступен к заполнению у пользователей из раздела "Users": 


Примечания:

  • атрибут "middleName" по умолчанию настроен на передачу по протоколу OAuth. Если в вашем случае передача "middleName" не настроена или отключена, то используйте пункты 5-8 для ее настройки;

  • подобную настройку можно выполнить для любого параметра — уже существующего или созданного вами;

  • аналогично можно создавать любые нужные вам атрибуты.

Шаг 2. Подтверждаем домен и завершаем настройки на стороне МТС Линк

  1. Подтверждение необходимо, чтобы только вы могли использовать ваш домен для SSO в МТС Линк. Подробнее об этом читайте в статьях Подтверждение домена для SSO и Настройка SSO.
    ВАЖНО: без подтвержденного домена функционал работать не будет!

  2. Заходим в личный кабинет МТС Линк, переходим в подраздел "Настройки SSO" раздела "Бизнес". Выбираем протокол OAuth, Keycloak в качестве SSO провайдера и вставляем данные из пунктов 3 и 4 первого шага настроек в соответствующие поля — "Идентификатор приложения (Client id)" и "Секретный ключ приложения (Client secret)", в поле "Базовый URL-адрес" указываем адрес вида "https://example.ru/realms/master" и нажимаем "Далее":

  3. Копируем значение "Valid redirect URIs" и нажимаем "Далее":

  4. На стороне Keycloak добавляем его в одноименное поле раздела "Clients" на вкладке "Settings":

  5. В личном кабинете МТС Линк указываем домен электронной почты, чтобы пользователи с этим доменом направлялись на страницу вашего провайдера идентификации, и нажимаем "Добавить":


Шаг 3. Проверяем корректность настроек перед началом использования

После выполнения всех необходимых действий можно проверить их корректность, нажав на кнопку "Проверить работу" в подразделе "Настройки SSO" раздела "Бизнес" личного кабинета МТС Линк:


Если есть ошибка в значении Client id, вас перебросит на страницу входа в Keycloak со следующим сообщением:

Проверьте и введите корректное значение Client id!


Если указан неверный секретный ключ приложения, будет выводиться сообщение следующего вида:

Проверьте и введите корректное значение Client secret!


Если базовый URL-адрес указан с ошибками или недоступен, то в правом нижнем углу окна раздела настроек SSO появится сообщение вида "Пожалуйста, проверьте правильность и доступность базового URL-адреса".


Если не был подтвержден домен, ошибка будет иметь следующий вид:


Если все данные были введены правильно, появится сообщение об успешной проверке:


Готово!

👆 На этом пока всё