我正在使用identityserver4保护API。我尝试在创建 ApiResource 的位置添加 ClaimTypes.Name,并且还尝试在用户在 IdServer 中进行身份验证时将用户声明添加到 GrantValidationResult 中。作为旁注,我将ASPNET Identity与IDServer一起使用。我读了一些关于IProfileService的信息,但不确定是否需要"仅"获取access_token中包含的用户名。是否有人知道在哪里配置名称声明并将其与访问令牌一起传递?
实现接口 ICustomTokenRequestValidator。
这就是我在令牌中添加自定义字段的方式。
public class DefaultClientClaimsAdder : ICustomTokenRequestValidator
{
public Task ValidateAsync(CustomTokenRequestValidationContext context)
{
context.Result.ValidatedRequest.Client.AlwaysSendClientClaims = true;
context.Result.ValidatedRequest.ClientClaims.Add(new Claim("clientid", "testingtesting"));
return Task.FromResult(0);
}
}
让它工作了。我向身份服务器添加了一个实现og IProfileService,并将配置文件添加到请求的范围