如何通过authorization_code流从IdentityServer4的TokenEndpoint获取id_token?

时间:2017-01-05 10:49:09

标签: asp.net-core openid-connect identityserver4

我想通过授权代码流从令牌端点获取“access_token”和“id_token”。但是,在使用postman上的以下参数调用令牌端点时,我收到“invalid_grant”错误。

POST /connect/token HTTP/1.1
Host: localhost:2000
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: a8a29659-0ea3-e7dc-3bd6-6e6630a7370d

client_id=client
&client_secret=client
&grant_type=authorization_code
&username=admin
&password=admin
&scope=openid+profile

客户端配置:

new Client
{
   ClientId = "client",
   ClientSecrets =
   {
     new Secret("client".Sha256())
   },
   AllowedGrantTypes = new List<string> { OidcConstants.GrantTypes.AuthorizationCode },
   AllowedScopes = {
     StandardScopes.OpenId.Name,
     StandardScopes.Profile.Name,
   }
}

我的客户端配置部分有什么问题?并且,如何向Token Endpoint成功发布请求?

1 个答案:

答案 0 :(得分:2)

授权代码授予类型要求在令牌请求期间发送code参数(请参阅RFC6749 section 4.1.3)。

在资源所有者授权客户端之后,授权服务器会发出此代码(请参阅RFC6749 section 4.1.2)。