Подключение OAuth 2.0-провайдера
Для подключения провайдера по протоколу OAuth 2.0 в параметре «kind» укажите значение «oauth2».
В отличие от OIDC, для OAuth 2.0 необходимо явно задать адреса конечных точек авторизации, порядок получения сведений о пользователе и правила сопоставления полученных данных с профилем пользователя Сканер-ВС.
Пример конфигурации для Yandex ID:
providers:
- name: yandex
display-name: Yandex ID
kind: oauth2
client-id: "..."
client-secret: "..."
endpoints:
authorization: https://oauth.yandex.ru/authorize
token: https://oauth.yandex.ru/token
scopes: [login:email, login:info]
userinfo:
url: https://login.yandex.ru/info
query:
format: jwt
auth:
scheme: header
header-name: Authorization
header-prefix: OAuth
response:
format: jwt-hs256-client-secret
jwt:
issuer: login.yandex.ru
subject-claim: psuid
login-expr: 'claims.login'
profile-expr:
name: 'claims.first_name'
surname: 'claims.last_name'
email: 'claims.email'
phone: 'claims.number'
Основные параметры конфигурации:
-
name – внутреннее уникальное имя провайдера;
-
display-name – название провайдера, отображаемое пользователю;
-
kind – тип провайдера. Для OAuth 2.0 используется значение «oauth2»;
-
client-id и client-secret – идентификатор и секрет зарегистрированного приложения;
-
endpoints.authorization – адрес страницы авторизации;
-
endpoints.token – адрес получения токена доступа;
-
scopes – области доступа, запрашиваемые при авторизации;
-
userinfo – параметры запроса сведений о пользователе и обработки ответа;
-
subject-claim – поле ответа, содержащее уникальный идентификатор пользователя;
-
login-expr – выражение для получения имени учётной записи;
-
profile-expr – правила сопоставления данных провайдера с полями профиля пользователя.
Адреса конечных точек «authorization», «token» и «userinfo», запрашиваемые области доступа и доступный набор полей «claims» определяются документацией Yandex ID.