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).