0

我可以通过网络浏览器成功调用我的 Api。使用 IdentityModel 可以正常工作。但是当我尝试通过 Fiddler 调用 Api 时,我得到了 invalid_client。我的客户信息来自基于 MembershipReboot Client 表的数据库。

我尝试通过 Post Body 和 Authentication basic 传递数据。两者都失败了。

使用身份验证基本编码参数调用时,我有以下内容>

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

Fiddler 中的实际编码值显示:

    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

在此处输入图像描述 我有 client_id 和 client_secret 但错误日志另有说明。谁能解释我做错了什么?我可以通过后端的 .NET 获取我的 access_token,但不能通过 Fiddler。

4

1 回答 1

1

在此处输入图像描述令牌端点不采用 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

于 2017-01-20T18:56:39.033 回答