Настройка авторизации через сервисы SSO
Администрирование → Настройки → Настройки модулей → OAuth

К порталу можно подключить несколько сервисов SSO, для каждого из них в форме авторизации при входе появится своя кнопка с названием сервиса. Для добавления нового нажмите «+Добавить».
1. Название — с таким названием будет отображаться кнопка «Войти через...» на странице авторизации.

2. Области (scope) — обязательно должен быть указан openid, email не обязателен, но сопоставление пользователя на портале происходит по email либо по логину из профиля.

3. Издатель (URL-адрес) — адрес необходимо узнать у сервиса авторизации. Практически у всех сервисов есть возможность получить необходимые данные для настройки по ссылке /.well-known/openid-configuration

4. Token URL — также необходимо узнать у сервиса авторизации. Эта информация есть в ответе на запрос конфигурации /.well-known/openid-configuration

5. Authorize URL — также необходимо узнать у сервиса авторизации. Эта информация есть в ответе на запрос конфигурации /.well-known/openid-configuration

6. ID клиента — будет указано в настройках сервиса SSO при создании подключения.

7. Алгоритм шифрования — список поддерживаемых алгоритмов шифрования можно узнать в конфигурации /.well-known/openid-configuration

8. Секретный ключ — будет указан в настройках сервиса SSO при создании подключения.

9. Публичный ключ — используется не во всех алгоритмах шифрования, поле необязательно для заполнения, если ключ не требуется. Будет указан в настройках сервиса SSO при создании подключения.

10. Настройка отображения кнопки входа — можно изменить иконку и название кнопки на странице входа на портал

При создании подключения на стороне сервиса необходимо будет указать Redirect URL, нужно указать https://auth.hrbox.io/auth/oauth

После заполнения всех полей нужно обязательно сохранить настройки для создания этого подключения в системе, после чего можно будет выполнить окончательную настройку, проверить подключение и получить схему для настройки сопоставления атрибутом с профилем пользователя.

Пример схемы, получаемой от GitLab и настройки сопоставления — у каждого сервиса будет своя.
ID пользователя — необязательное поле, оно сохранится в профиле пользователя, если портал его получит. И в дальнейшем сопоставление при входе будет происходить в первую очередь через него.

1. E-mail пользователя — почта авторизации пользователя, которая указана в настройках профиля в разделе авторизация → Основной E-mail.

2. Логин пользователя — поле Логин в настройках авторизации.
Подключение SSO на примере сервиса GitLab
На следующей странице получаем часть необходимой информации:

1. Application ID указать в ID клиента.

2. Secret копировать и вставить в Секретный ключ.
Для получения остальных настроек нужно перейти по ссылке https://gitlab.com/.well-known/openid-configuration
У каждого сервиса ссылка для получения конфигурации будет своя:
issuer — Издатель (URL адрес).

authorization_endpoint — Authorize URL.

token_endpoint — Token URL.

id_token_signing_alg_values_supported — поддерживаемые алгоритмы шифрования, в данном случае поддерживается только RS256.

Заполнить настройки и сохранить.
Появилась возможность проверить подключение. Видим, что подключение работает, и т.к. сейчас у меня уже есть токен авторизации GitLab, вход уже выполнен, сервис запрашивает разрешения на авторизацию созданного подключения приложения, это нужно сделать 1 раз.
Далее нужно получить схему и настроить сопоставления полей портала с получаемыми данными. Атрибут email так и называется.
Атрибут email указать в поле E-mail пользователя, nickname Логин пользователя, sub похоже на id пользователя, можно его указать в id, но не обязательно. Для авторизации достаточно email или логина.