Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 е Base64 URL кодирането на code_verifier SHA-256 хеш, но = допълващият символ от кодирането трябва да бъде премахнат, а дължината на изхода трябва да е 43 знака (тъй като след Base64 URL кодиране всеки 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