7.2. Положения об обеспечении безопасности сервера авторизации

7.2. Положения об обеспечении безопасности сервера авторизации

7.2.1. Сервер авторизации должен поддерживать положения, указанные в подразделе 6.2.

При этом положение пункта 6.2.1 в части перечисления 6 (PKCE) не должно использоваться.

Кроме того, сервер авторизации:

1. Должен требовать подписанный JWS (пункт 5.7.1) объект запроса JWT (пункт 5.7.4), переданный по значению с параметром <request> или по ссылке с параметром <request_uri>.

2. Должен требовать:

a. значения <response_type> = "code id_token" (Режим 3 [5]), или

b. значения <response_type> = "code" в сочетании со значением <response_mode> = "jwt" (Режим 2 [5]).

3. Должен выдавать только токены доступа с ограничением отправителя (sender-constrained access tokens) (пункт 5.8.4).

4. Должен поддерживать MTLS как механизм для ограничения легитимных отправителей токенов доступа (пункт 5.8.4).

5. Должен использовать только параметры, включенные в подписанный объект запроса, переданный через параметр <request> или <request_uri>.

6. Должен требовать, чтобы объект запроса содержал параметр <exp> с временем жизни не более 60 минут, начиная со значения параметра <nbf>.

7. В отличие от требований подраздела 6.2, должен аутентифицировать конфиденциального клиента, используя один из методов, указанных в подразделе 5.5:

- "private_key_jwt": аутентификация на основе цифровой подписи;

- "tls_client_auth": аутентификация с использованием MTLS и PKI для связывания сертификата с клиентом.

8. Должен требовать, чтобы параметр <aud> в объекте запроса содержал URL идентификатора эмитента.

9. Не должен поддерживать публичных клиентов.

10. Должен требовать, чтобы объект запроса содержал параметр <nbf>, который не должен быть старше 60 минут.

7.2.2. ID токен в качестве отделенной подписи

Кроме того, если используется значение <response_type> = "code id_token", сервер авторизации:

1. Должен поддерживать OpenID Connect в объеме методических рекомендаций [5].

2. Должен поддерживать подписанные ID токены.

3. Должен поддерживать подписанные и зашифрованные ID токены.

4. Должен возвращать ID токен в качестве отделенной подписи (detached signature) к ответу авторизации.

Примечание. ID токен не только подтверждает идентификацию владельца ресурса (субъекта), он также идентифицирует сервер авторизации (содержит идентификатор эмитента). В случае если ID токен включает идентификатор субъекта, он действует как отделенная подпись (detached signature) источника данных к ответу авторизации. Таким образом, ID токен также защищает ответ авторизации путем включения в ID токен хэш-кода незащищенных параметров ответа <code> и <state>.

5. Если клиент предоставил значение <state>, для его защиты должен включать в ID токен хэш-код состояния <s_hash>. <s_hash> может быть опущен в ID токене, возвращаемом с конечной точки токена, если <s_hash> присутствует в ID токене, возвращаемом с конечной точки авторизации.

6. Не должен возвращать конфиденциальные персональные данные в ID токене в ответе авторизации.

Примечание. Сервер авторизации может вернуть из конечной точки авторизации больше параметров в составе ID токена, чем в ответе авторизации, согласно синтаксису OAuth 2.0.

7.2.3. JARM

Кроме того, если значение <response_type> = "code" используется в сочетании со значением <response_mode> = "jwt", сервер авторизации должен создавать защищенные JWT ответы авторизации (пункт 5.4.5).