Перейти к основному содержимому
Версия: 7.3

Подключение 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.