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"]
}
|