Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 1|Ответ: 0

Понимание code_challenge и code_vertifier PKCE в OIDC

[Скопировать ссылку]
Опубликовано19 секунд назад | | | |
OAuth 2.0 предлагает несколько режимов авторизации, среди которых наиболее распространённым и безопасным является Authorization Code Grant. code_challenge — это функция с повышением безопасности в этом режиме, в основном используемая для механизма PKCE (Proof Key for Code Exchange).

Что такое PKCE?

PKCE (Proof Key for Code Exchange) — это расширение, разработанное для повышения безопасности шаблона авторизационного кода OAuth 2.0, особенно при использовании в публичных клиентах, таких как JavaScript-приложения или мобильные приложения, работающие в браузерах. PKCE предотвращает перехват и неправильное использование авторизационных кодов за счёт добавления дополнительного этапа аутентификации к запросам авторизации.

code_challenge Роль

code_challenge является частью механизма PKCE, генерируемого и отправляемого на этапе запроса авторизации. Он основан на секретном значении (называемом code_verifier), преобразованном алгоритмом хеширования, таким как S256. Цель code_challenge — предоставить базу валидации для последующих запросов токенов без прямого раскрытия code_verifier.

Генерация и использование code_challenge и code_verifier

Поколение code_verifier:
code_verifier — это строка с высокой энтропией, случайно сгенерированная,Длина символа (от 43 до 128). Значение по умолчанию — 43。

Поколение code_challenge:
Используя code_verifier, code_challenge генерируется с помощью алгоритма хеширования (например, S256). Для S256 code_challenge — это кодировка URL Base64 для хеш-значения code_verifier SHA-256, но символ заполнения = из кодировки должен быть удалён, а длина выхода должна составлять 43 символа (поскольку после кодировки URL Base64 каждые 4 символа представляют 3 байта, но последний блок символов может быть менее 4, поэтому длина может немного изменяться после удаления = символов).

Используйте code_challenge в запросах на авторизацию:
При запуске запроса авторизации code_challenge отправляется как один из параметров запроса на сервер авторизации.

Использование code_verifier в запросах токенов:
Когда сервер авторизации возвращает код авторизации, клиент использует этот код вместе с ранее сгенерированным code_verifier для запроса доступа к токене. Сервер авторизации проверяет, совпадают ли code_challenge и code_verifier, гарантируя, что запрос инициирован исходным клиентом.

Генерация PKCE

Онлайн-инструменты генерации PKCE:Вход по гиперссылке виден.

Код на C# генерируется следующим образом:
Как показано ниже:



Ссылка:

Вход по гиперссылке виден.
Вход по гиперссылке виден.




Предыдущий:.NET/C# Два метода проверки достоверности подписи токена JWT
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com