0

Я могу успешно позвонить в свой Api через веб-браузер. Использование IdentityModel отлично работает. Но когда я пытаюсь вызвать Api через Fiddler, я получаю invalid_client. Информация о моих клиентах поступает из базы данных на основе таблиц MembershipReboot Client.Невозможно получить токен доступа через Fiddler IdentityServer3

Я пробовал передавать данные через тело сообщения и через базовую аутентификацию. Оба терпят неудачу.

При вызове с помощью аутентификации Basic закодированных параметров У меня есть следующие>

User-Agent: Fiddler 
Host: qaquasaridentity 
Content-Length: 0 
Content-Type: application/x-www-form-urlencoded 
Authorization: Basic dGVzdC5hcGk6c2VjcmV0 

Фактическое кодированное значение Скрипач показывает:

No Proxy-Authorization Header is present. 

Authorization Header is present: Basic dGVzdC5hcGk6c2VjcmV0 
Decoded Username:Password= test.api:secret 

Когда я звоню с помощью Post Body для параметров, передаваемые данные это:

client_id=test.api 
&client_secret=secret 
&grant_type=client_credentials 
&scope=testapi 

В журнале сервера указано

2017-01-20 12:06:13.968 -06:00 [Debug] Start client validation 
2017-01-20 12:06:13.971 -06:00 [Debug] Start parsing Basic Authentication secret 
2017-01-20 12:06:13.973 -06:00 [Debug] Start parsing for secret in post body 
2017-01-20 12:06:13.973 -06:00 [Debug] No secret in post body found 
2017-01-20 12:06:13.976 -06:00 [Debug] Start parsing for X.509 certificate 
2017-01-20 12:06:13.976 -06:00 [Debug] client_id is not found in post body 
w3wp.exe Information: 0 : 2017-01-20 12:06:13.976 -06:00 [Information] Parser found no secret 
w3wp.exe Information: 0 : 2017-01-20 12:06:13.981 -06:00 [Information] No client secret found 
w3wp.exe Information: 0 : 2017-01-20 12:06:13.983 -06:00 [Information] End token request 
w3wp.exe Information: 0 : 2017-01-20 12:06:13.988 -06:00 [Information] Returning error: invalid_client 

enter image description here У меня есть client_id и client_secret, но журнал ошибок говорит иначе. Может ли кто-нибудь объяснить, что я делаю неправильно? Я могу получить свой access_token через .NET на сервере, но не через Fiddler.

ответ

0

enter image description here Конечная точка маркера не принимает JSON, но данные формы.

POST /connect/token 

grant_type=client_credentials&client_id=test.api&client_secret=secret&scope=api 

http://openid.net/specs/openid-connect-core-1_0.html#TokenRequest https://identityserver.github.io/Documentation/docsv2/endpoints/token.html

+0

я получаю ту же ошибку делает, что хорошо. Но журнал ошибок теперь говорит о некорректном алгоритме хэширования. Я предоставляю информацию через PostBody, как в вашем примере. – Keith

+0

Похоже, есть дополнительное свободное пространство между «Основным» и вашим запрошенным base64 clientid: clientsecret. Может ли это так? –

+0

Не является ли аутентификация базовой факультативной? если я использую PostBody, как в вашем примере, тогда мне не нужна аутентификация Basic XXXXX. Верный? – Keith