Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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