Настройка SSO (OAuth 2.0) через Keycloak
В статье:
1. Настройка Keycloak
2. Настройка Single Sign-On (SSO)
Keycloak — это инструмент для идентификации пользователей. Он реализует технологию единого входа, которая позволяет переходить из одной системы в другую без повторной аутентификации. Подробнее о работе Keycloak вы можете узнать здесь.
1. Настройка Keycloak:
- Создание Realm:
Realm – рабочая область, которая содержит совокупность всех данных, необходимых для аутентификации (компания, пользователи, пароли).
В боковом меню выберите Create Realm > в Realm name введите название > Create - Cоздание Clients:
▪️ Перейдите в раздел Clients > введите Client ID > Next
▪️ Включите Client authentication > Оставьте галочку только напротив Standart flow > Save
▪️ В Valid redirect URLs введите адрес https://auth.unspot.ru/api/oauth2/verify
▪️ В Login settings выберете keycloak в Login theme > Save - Cоздание Users:
▪️ Перейдите в раздел Users > Create new user
▪️ Введите Username, Email, First name, Last name и нажмите Create > Save
▪️ Во вкладке Credentials задайте пароль для пользователя и уберите тумблер замены пароля пользователем при первой авторизации
Важно: Поле email должно быть заполнено, в дальнейшем это будет логином пользователя для входа.
2. Настройка Single Sign-On
Для подключения интеграции:
1. Перейдите на сайте UnSpot в раздел Настройка > Управление персоналом > Политики доступа
2. На странице найдите Дополнительные способы входа и нажмите Подключить к OAuth 2.0
Примечание: для заполнения нижеприведенных полей перейдите в Keycloak. В боковом меню в перейдите в "Realm settings" и во вкладке General откройте ссылку "OpenID Endpoint Configuration"
clientId
– идентификатор клиента- Перейдите в Keycloak > Clients > выберете компанию > во вкладке General скопируйте Client ID
LoginUri
– введите ссылку из OpenID Endpoint Configuration- Пример: https://<название вашего сервера>/realms/<название вашего realms>/protocol/openid-connect/auth
Тип JWKs
– проверка подлинности токенов доступа- если вы хотите вставить ссылку > выберите
Url
, - если хотите вставить ключи вручную > выберите
Keys
- если вы хотите вставить ссылку > выберите
JWKs
– в зависимости от выбранного типа JWK вставьте ссылку или скопированные ключи из ссылки OpenID Endpoint Configuration.- Пример: https://<название вашего сервера>/realms/<название вашего realms>/protocol/openid-connect/certs
Название
– будет отображаться на кнопке подключение при входе в приложениеИконка
– будет отображаться на кнопке подключение при входе в приложение. Ограничение на размер изображения: 64px*64px.Тип ответа
– Code. Для интеграции с Keycloak выбрите этот тип ответа. C помощью кода Unspot получит информацию об имени, фамилии и почте для создания акаунта в системе.Client secret
– секретный код для интеграции- Перейдите в Keycloak > Clients > выберете компанию > во вкладке Credentials скопируйте Client secret
TokenURI
– введите ссылку из OpenID Endpoint Configuration- Пример: https://<название вашего сервера>/realms/<название вашего realms>/protocol/openid-connect/token
Scope
– введите в полеopenid
Нажмите Сохранить > OAuth 2.0 успешно подключен.
Для отключения OAuth 2.0 нажмите на кнопку Отключить
Важно: Для автоматического входа сотрудников в систему UnSpot и импорта данных из Keycloak, необходимо добавить корпоративный домен компании в разделе Настройка > Управление персоналом > Политики доступа > OpenID Connect