0

Je peux appeler avec succès mon Api via un navigateur Web. L'utilisation d'IdentityModel fonctionne très bien. Mais quand j'essaie d'appeler l'Api via Fiddler, j'obtiens invalid_client. Mes informations client proviennent d'une base de données basée sur les tables Client MembershipReboot.Impossible d'obtenir un jeton d'accès via Fiddler IdentityServer3

J'ai essayé de transmettre des données via Post Body et via Authentication basic. Les deux échouent.

Lors de l'appel à l'aide des paramètres d'authentification de base encodées je donne les résultats suivants>

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

La valeur encodée réelle Fiddler montre:

No Proxy-Authorization Header is present. 

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

Quand j'appel à l'aide du corps après des paramètres les données transmises est:

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

Le journal du serveur indique

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 Je le client_id et client_secret mais le journal d'erreur indique le contraire. Quelqu'un peut-il expliquer ce que je fais mal? Je peux obtenir mon access_token via .NET sur le backend mais pas via Fiddler.

Répondre

0

enter image description here Le point de terminaison de jeton ne prend pas JSON, mais des données de formulaire.

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

je reçois la même erreur le faire aussi bien. Mais le journal des erreurs indique maintenant un algorithme de hachage invalide. Je fournis les informations via PostBody comme dans votre exemple. – Keith

+0

Il semble qu'il y ait un espace blanc supplémentaire entre "Basic" et votre clientid encodé en base64: clientsecret. Est-ce que ça pourrait être ça? –

+0

L'authentification de base n'est-elle pas facultative? Si j'utilise le PostBody comme dans votre exemple, je n'ai pas besoin de Authentication Basic XXXXX. Correct? – Keith