Если вы используете Keycloak для аутентификации и авторизации пользователей, то теперь вы можете настроить возможность входа на онлайн-мероприятия и в личный кабинет МТС Линк с использованием протокола OAuth 2.0.
Keycloak — продукт с открытым кодом для реализации SSO с возможностью управления доступом. Обеспечивает аутентификацию и авторизацию пользователей.
Инструкции для других протоколов и провайдеров идентификации:
Для настройки необходимо выполнить следующие действия.
Заходим в учетную запись администратора Keycloak и в левом верхнем углу выбираем нужную группу пользователей (Realm):
Или создаем новую, нажав на "Create realm". При создании есть возможность загрузить файл JSON, включающий данные о пользователях, ролях, группах, клиентах, настройках аутентификации и так далее.
В разделе "Clients" выбираем нужный клиент и открываем его по двойному клику мыши:
На вкладке "Settings" понадобится параметр "Client ID":
На вкладке "Credentials" понадобится параметр "Client secret":
В разделе "Clients" заходим в нужный клиент, на вкладке "Client scopes" выбираем вариант, специализированный для этого клиента (в столбце "Description" будет описание вида "Dedicated scope and mappers for this client") и заходим в него:
Если на вкладке "Mappers" отсутствуют какие-либо объекты, нажимаем на "Configure a new mapper" в центре окна: Если на вкладке "Mappers" уже есть добавленные ранее объекты, нажимаем на "Add mapper" и выбираем "By configuration":
В обоих случаях откроется список, в котором надо нажать на "User Attribute"После этого сразу откроется страница настроек атрибута.
В настройках атрибута нужно задать параметр "Name" (любое понятное имя атрибута). Ниже необходимо включить опцию "Add to userinfo", если она не включена, и нажать на "Save": Опционально: в настройках атрибута также можно выбрать значение "middleName" (Отчество) для параметра "User Attribute" и в качестве значения параметра "Token Claim Name" задать "middle_name". Важно указать его точно в таком виде, так как МТС Линк будет ожидать "Отчество" именно под таким ключом.
Если при заполнении параметра "User Attribute" будет отсутствовать значение нужного вам опционального атрибута, то его можно создать. На примере "middleName" (Отчество) — в разделе "Realm settings" на вкладке "User profile" нажимаем на кнопку "Create attribute":
Создаем атрибут "middleName" с настройками, как на рисунке:Теперь этот атрибут будет доступен к заполнению у пользователей из раздела "Users":
Примечания:
атрибут "middleName" по умолчанию настроен на передачу по протоколу OAuth. Если в вашем случае передача "middleName" не настроена или отключена, то используйте пункты 5-8 для ее настройки;
подобную настройку можно выполнить для любого параметра — уже существующего или созданного вами;
аналогично можно создавать любые нужные вам атрибуты.
Подтверждение необходимо, чтобы только вы могли использовать ваш домен для SSO в МТС Линк. Подробнее об этом читайте в статьях Подтверждение домена для SSO и Настройка SSO.
ВАЖНО: без подтвержденного домена функционал работать не будет!
Заходим в личный кабинет МТС Линк, переходим в подраздел "Настройки SSO" раздела "Бизнес". Выбираем протокол OAuth, Keycloak в качестве SSO провайдера и вставляем данные из пунктов 3 и 4 первого шага настроек в соответствующие поля — "Идентификатор приложения (Client id)" и "Секретный ключ приложения (Client secret)", в поле "Базовый URL-адрес" указываем адрес вида "https://example.ru/realms/master" и нажимаем "Далее":
Копируем значение "Valid redirect URIs" и нажимаем "Далее":
На стороне Keycloak добавляем его в одноименное поле раздела "Clients" на вкладке "Settings":
В личном кабинете МТС Линк указываем домен электронной почты, чтобы пользователи с этим доменом направлялись на страницу вашего провайдера идентификации, и нажимаем "Добавить":
После выполнения всех необходимых действий можно проверить их корректность, нажав на кнопку "Проверить работу" в подразделе "Настройки SSO" раздела "Бизнес" личного кабинета МТС Линк:
Если есть ошибка в значении Client id, вас перебросит на страницу входа в Keycloak со следующим сообщением:
Проверьте и введите корректное значение Client id!
Если указан неверный секретный ключ приложения, будет выводиться сообщение следующего вида:
Проверьте и введите корректное значение Client secret!
Если базовый URL-адрес указан с ошибками или недоступен, то в правом нижнем углу окна раздела настроек SSO появится сообщение вида "Пожалуйста, проверьте правильность и доступность базового URL-адреса".
Если не был подтвержден домен, ошибка будет иметь следующий вид:
Если все данные были введены правильно, появится сообщение об успешной проверке:
Готово!