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

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

Примечание. Для публикации и поиска метаданных сервера авторизации может использоваться процедура OpenID Connect Discovery [40] или [41]. В случае ее реализации требуется проведение исследований ее безопасности в соответствии с установленным законодательством Российской Федерации порядком. Передача сообщений Discovery, в том числе сообщений используемого там сервиса WebFinger [39], между клиентом и сервером авторизации должна быть защищена с помощью протокола TLS с обеспечением конфиденциальности и целостности. При этом должна выполняться аутентификация источника информации Discovery.

5.4.4.2. В настоящем стандарте используются следующие метаданные сервера авторизации (подраздел 5.4 [5]):

- <issuer>: (обязательный) https URL-адрес, являющийся уникальным идентификатором эмитента (Issuer Identifier); это значение должно быть указано в качестве параметра <iss> в ID токенах, выданных данным сервером авторизации;

- <authorization_endpoint>: (обязательный) URI конечной точки авторизации;

- <token_endpoint>: (обязательный) URI конечной точки токена;

- <userinfo_endpoint>: (рекомендуемый) URI конечной точки UserInfo, предназначенный для запроса информации об аутентифицированном конечном пользователе (подпункт 5.4.2.17);

- <registration_endpoint>: (рекомендуемый) URI конечной точки динамической регистрации клиентов сервера авторизации (подпункт 5.4.4.3 и [42], [43]);

- <jwks_uri>: (обязательный) URL документа Key Set (подпункт 5.7.3.3) сервера авторизации, где публикуются его ключи в формате JWK; публикуемые сертификаты должны передаваться доверенным образом;

- <grant_types_supported>: (опциональный) перечень поддерживаемых сервером авторизации типов разрешений на доступ (grants); сервера авторизации, соответствующие настоящему стандарту, должны поддерживать только значение "authorization_code" (значение по умолчанию);

- <scopes_supported>: (обязательный) перечень значений параметра <scope> запроса аутентификации, которые поддерживает сервер авторизации;

- <response_types_supported>: (обязательный) перечень поддерживаемых значений параметра <response_type>; сервера авторизации, соответствующие настоящим рекомендациям, должны поддерживать только значения "code" и "code id_token":

-- "code" - сервер авторизации возвращает код авторизации (режим 1 или 2 [5]),

-- "code id_token" - сервер авторизации возвращает код авторизации и ID токен (режим 3 [5]);

- <response_modes_supported>: (опциональный) перечень поддерживаемых значений параметра <response_mode>; по умолчанию ["query", "fragment"]; при использовании технологии JARM (пункт 5.4.5) также могут присутствовать следующие значения <response_mode>: "query.jwt", "fragment.jwt", "jwt";

- <claims_supported>: (рекомендуемый) список имен параметров пользователя, значения которых сервер авторизации может предоставить клиенту;

- <service_documentation>: (опциональный) URL-адрес страницы, содержащей информацию, предоставляемую разработчиками или которую нужно знать при использовании сервера авторизации;

- <id_token_signing_alg_values_supported>: (обязательный) JSON-массив, содержащий список алгоритмов цифровой подписи JWS (значения параметра <alg>), поддерживаемых сервером авторизации для ID токена;

- <id_token_encryption_alg_values_supported>: (опциональный) JSON-массив, содержащий список алгоритмов шифрования JWE (значения параметра <alg>), поддерживаемых сервером авторизации для ID токена;

- <id_token_encryption_enc_values_supported>: (опциональный) JSON-массив, содержащий список алгоритмов шифрования JWE (значения параметра <enc>), поддерживаемых сервером авторизации для ID токена;

- <request_object_signing_alg_values_supported>: (опциональный) JSON-массив, содержащий список алгоритмов цифровой подписи JWS (значения параметра <alg>), поддерживаемых сервером авторизации для объектов запроса (подпункт 5.4.2.3);

- <request_object_encryption_alg_values_supported>: (опциональный) JSON-массив, содержащий список алгоритмов шифрования JWE (значения параметра <alg>), поддерживаемых сервером авторизации для объектов запроса;

- <request_object_encryption_enc_values_supported>: (опциональный) JSON-массив, содержащий список алгоритмов шифрования JWE (значения параметра <enc>), поддерживаемых сервером авторизации для объектов запроса.

Адреса всех перечисленных выше конечных точек сервера авторизации должны быть разными.

При реализации настоящего стандарта могут использоваться также и другие метаданные сервера авторизации.

Примечание. Дополнительные сведения о метаданных сервера авторизации приведены в RFC8414 [41].