Я не могу получить авторизацию IdentityServer4 PKCE для работы с почтальоном.
Используя онлайн-инструменты, я создаю необходимые детали:
Выберите случайную строку:
1234567890
Получить его SHA-256 хэш:
c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646
Base64 кодирует хэш, чтобы получить код проблемы:
1018*
Yzc3NWU3Yjc1N2VkZTYzMGNkMGFhMTExM2JkMTAyNjYxYWIzODgyOWNhNTJhNjQyMmFiNzgyODYyZjI2ODY0Ng ==
в браузере я перейти к следующему URL-адресу, заполнить в своих учетных данных и получить код из фрагментированного перенаправления URL.
GET https://localhost:5000/connect/authorize
?client_id=pkceclient
&scope=openid
&response_type=code
&redirect_uri=https://jwt.ms
&state=abc
&nonce=xyz
&code_challenge=Yzc3NWU3Yjc1N2VkZTYzMGNkMGFhMTExM2JkMTAyNjYxYWIzODgyOWNhNTJhNjQyMmFiNzgyODYyZjI2ODY0Ng==
&code_challenge_method=S256
привыкупая код для токена, я передаю code_verifier (хэш SHA-256), но мой IdentityServer регистрирует следующую ошибку:
«Проверка преобразованного кода не соответствует запросу кода».
POST https://localhost:5000/connect/token
client_id=pkceclient
grant_type=authorization_code
code:-CesrmjPYjdLdDd5AviOZpR6GdjjkZia_ZapoJdGUZI
redirect_uri=https://jwt.ms
code_verifier=c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646
В своем блоге автор использует следующий код для генерации деталей.
var verifier = CryptoRandom.CreateRandomKeyString(64);
var challenge = verifier.ToCodeChallenge();
, но я не могу найти код в репозиториях для метода ToCodeChallenge
.
Почему мой вызов, созданный вручную, не совпадает с тем, который использовался в процессе проверки, чего мне не хватает?