Identityserver4 获取客户端的标识令牌
我使用IdentitServer4为windows应用程序创建了一个客户端。要调用另一个身份验证服务,即AWS STS,我需要设置与我的ID服务器的联合,并使用身份令牌 是否可以为客户端获取身份令牌 下面的代码为我提供了访问令牌,但标识令牌为nullIdentityserver4 获取客户端的标识令牌,identityserver4,Identityserver4,我使用IdentitServer4为windows应用程序创建了一个客户端。要调用另一个身份验证服务,即AWS STS,我需要设置与我的ID服务器的联合,并使用身份令牌 是否可以为客户端获取身份令牌 下面的代码为我提供了访问令牌,但标识令牌为null var disco = await DiscoveryClient.GetAsync(Properties.Settings.Default.IdentityUrl); if (disco.IsError) {
var disco = await DiscoveryClient.GetAsync(Properties.Settings.Default.IdentityUrl);
if (disco.IsError)
{
return false;
}
var tokenClient = new TokenClient(disco.TokenEndpoint, _executionContext.ClientID, _executionContext.Secret);
var tokenResponse = await tokenClient.RequestClientCredentialsAsync("api.v1");
_executionContext.AgentToken = tokenResponse.AccessToken; // OK
_executionContext.IdentityToken = tokenResponse.IdentityToken; // NULL
不,根据定义,客户端不能为自己请求标识令牌。仅代表用户。从: 使用者 用户是使用已注册客户端访问的用户 资源 客户 客户机是一种从服务器请求令牌的软件 IdentityServer-用于验证请求 身份令牌或用于访问请求访问的资源 代币 客户端无法为自己请求标识令牌的原因是,它没有并且不能有子声明: 子声明的存在或不存在使API能够区分 在代表客户端的呼叫和代表用户的呼叫之间
下面是一个关于如何使用密码授权代表用户请求身份令牌的示例。我讨厌安全方面的东西。我希望我们能信任别人: