6.3. Положения об обеспечении безопасности клиента

6.3.1. Клиент:

1. Должен поддерживать технологию PKCE (подпункт 5.4.2.4).

2. Должен использовать "St256" (пункт 6.2.6 [5]) в качестве метода запроса кода технологии PKCE (подпункт 5.4.2.4).

3. Должен использовать разные URI-переадресации для каждого сервера авторизации, на котором зарегистрирован клиент.

4. Должен хранить значение URI-переадресации в сеансе агента пользователя владельца ресурса и сравнивать его со значением URI-переадресации, по которому был получен ответ авторизации; если URI не совпадают, клиент должен завершить процесс с ошибкой.

5. Должен реализовать эффективную защиту от CSRF.

6. Должен поддерживать следующие методы аутентификации на конечной точке токена: (подраздел 5.5):

- client_secret_jwt: аутентификация на основе кода аутентификации HMAC и <client_secret>;

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

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

7. Должен использовать ключи, размер которых составляет 256 бит или больше, для алгоритмов на основе эллиптической кривой.

8. Должен проверять, что значение секрета клиента <client_secret> имеет длину не менее 256 бит, если используется криптография с симметричным ключом.

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

- должен включать строку "openid" в перечень значений параметра <scope>;

- должен включать параметр <nonce> (подпункт 5.4.2.2) в состав запроса аутентификации.

10. Если "openid" не входит в значение предметной области <scope>, публичный клиент:

- должен включить параметр <state> в запрос аутентификации (подпункт 5.4.2.2);

- должен генерировать состояние (контекст) агента пользователя при формировании запроса аутентификации и далее проверять соответствие этого состояния значению параметра <state> (пункты 6.2.1, 6.2.3, 6.2.5 [5]);

- должен проверить, что область действия, полученная в ответе токена, либо в точности совпадает, либо является подмножеством области действия, отправленной в запросе аутентификации;

- должен использовать только достоверные метаданные сервера авторизации, полученные из документа метаданных, опубликованного сервером авторизации по адресу его достоверной конечной точки (подпункт 5.4.4.1).