6.2.1. Метаданные сервера авторизации

6.2.1. Метаданные сервера авторизации

6.2.1.1. Тип разрешения на доступ

Для обеспечения аутентификации конечного пользователя по отдельному каналу определяется дополнительный тип на доступ "urn: openid: params: grant-type: ciba", который используется в параметре <grant_types_supported> метаданных сервера авторизации, поддерживающего режимы Ping или Poll для обнаружения метаданных, а также объявляется клиентом в запросе авторизации к конечной точке токена для получения токена.

Примечание. Рекомендации по расширению типа доступа, определенные в подразделе 4.5 [RFC6749].

6.2.1.2. Параметры сервера авторизации

Для объявления поддерживаемых методов аутентификации клиента и их применимости, а также алгоритмов подписания JWT для конечной точки аутентификации по отдельному каналу определяются дополнительные параметры метаданных сервера авторизации: <token_endpoint_auth_methods_supported> и <token_endpoint_auth_signing_alg_values_supported>.

6.2.1.3. Дополнительные метаданные сервера авторизации

ДОПОЛНИТЕЛЬНЫЕ МЕТАДАННЫЕ СЕРВЕРА АВТОРИЗАЦИИ
Табл. 1

Наименование параметра
Кратность
Определение
Примечание
backchannel_token_delivery_modes_supported
1..1
JSON-массив, содержащий значения, указывающие поддерживаемые режимы ("poll", "ping" или "push")
backchannel_authentication_endpoint
1..1
URL-адрес конечной точки аутентификации по отдельному каналу сервера авторизации
backchannel_authentication_request_signing_alg_values_supported
0..1
Массив JSON, содержащий список алгоритмов подписания JWS-запросов аутентификации, поддерживаемых сервером авторизации
В случае отсутствия параметра подписанные запросы аутентификации не поддерживаются сервером авторизации
backchannel_user_code_parameter_supported
0..1
Логическое значение, указывающее поддержку сервером авторизации параметра <user_ code> (значение "true" означает поддержку)
В случае отсутствия параметра значением по умолчанию является "false"

6.2.2. Метаданные клиента

Клиенты, регистрирующиеся с использованием аутентификации по отдельному каналу, указывают режим доставки токена <backchannel_token_delivery_mode>.

При использовании режима Ping или Poll клиент указывает новый тип доступа "urn: openid: params: grant-type: ciba" в списке поддерживаемых типов авторизации (параметр <grant_types>).

При использовании режима Ping или Push клиент регистрирует конечную точку уведомления клиента значением параметра <backchannel_client_notification_endpoint>. Клиенты, использующие подписанные запросы аутентификации, регистрируют используемый алгоритм подписи значением параметра <backchannel_authentication_request_signing_alg>.

6.2.2.1. Дополнительные метаданные клиента

ДОПОЛНИТЕЛЬНЫЕ МЕТАДАННЫЕ КЛИЕНТА
Табл. 2

Наименование параметра
Кратность
Определение
Примечание
backchannel_token_delivery_mode
1..1
Режим доставки токена. Принимает одно из следующих значений: "poll", "ping" или "push"
Должно быть указано, если параметр <grant_types> включает "urn: openid: params: grant-type: ciba"
backchannel_client_notification_endpoint
1..1
Конечная точка (URL-адрес HTTPS), на которую сервер авторизации отправит уведомление после успешной или неудачной аутентификации конечного пользователя
Должно быть указано, если параметр <grant_types> включает "urn: openid: params: grant-type: ciba" и параметр "backchannel_token_delivery_mode" определен как "ping" или "push"
backchannel_authentication_request_signing_alg
0..1
Алгоритм JWS, используемый как значение параметра <alg>, который клиент использует для подписания запроса аутентификации.
Если не указан, клиент не отправляет подписанные запросы аутентификации
Должно быть указано, если параметр <grant_types> включает "urn: openid: params: grant-type: ciba"
backchannel_user_code_parameter_supported
0..1
Логическое значение, указывающее, поддерживает ли клиент параметр <user_code>
В случае отсутствия параметра значением по умолчанию является "false"

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

Пример запроса динамической регистрации клиента

POST/connect/register HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: server.example.com
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJ ...
{
"application_type": "web",
"client_name": "My Example",
"logo_uri": "https://client.example.ru/logo.png",
"subject_type": "pairwise",
"token_endpoint_auth_method": "private_key_jwt",
"grant_types": ["urn: openid: params: grant-type: ciba"],
"backchannel_token_delivery_mode": "poll",
"jwks_uri": "https://client.example.org/my_public_keys.jwks",
"contacts": ["ve7aft@example.ru", "andy@example.ru"]
}