Если вы используете 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" (любое понятное имя атрибута), выбрать значение "middleName" (Отчество) для параметра "User Attribute" и в качестве значения параметра "Token Claim Name" задать "middle_name". Важно указать его точно в таком виде, так как МТС Линк будет ожидать "Отчество" именно под таким ключом.
Ниже необходимо включить опцию "Add to userinfo", если она не включена, и нажать на "Save":
Если при заполнении параметра "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-адреса".
Если не был подтвержден домен, ошибка будет иметь следующий вид:
Если все данные были введены правильно, появится сообщение об успешной проверке:
Готово!