在identityserver4和自定义AuthorizationHandler User.Identity.isAuthenticated上使用客户端凭据流=false
您好,我使用的是identity server 4,我创建了一个使用客户端\u凭据保护的客户端 我能够使用clientid和secret检索令牌,根据jwt.io,访问令牌的过期时间为3600秒或(1小时) 在NetCore2.2API上,我有一个自定义的AuthorizationHandler在identityserver4和自定义AuthorizationHandler User.Identity.isAuthenticated上使用客户端凭据流=false,identityserver4,Identityserver4,您好,我使用的是identity server 4,我创建了一个使用客户端\u凭据保护的客户端 我能够使用clientid和secret检索令牌,根据jwt.io,访问令牌的过期时间为3600秒或(1小时) 在NetCore2.2API上,我有一个自定义的AuthorizationHandler protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ClientCredentialR
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ClientCredentialRequirement requirement)
{
if (requirement.AllowedClients != null && requirement.AllowedClients.Any()) {
if (context.User.Identity.IsAuthenticated) { // this is false
context.Succeed(requirement);
return Task.CompletedTask;
}
在使用客户端凭据时,是否应返回false?我希望它是真的,因为令牌是有效的,所以我算出了
事实证明,该应用程序是一个功能完整的“idserver”加上“mvcweb站点”,已经配置了cookie身份验证,这一事实给我带来了问题
对api的请求没有声明,因为没有使用承载身份验证方案来处理请求
我必须将其添加到api控制器中,才能使其按预期工作
[Authorize(AuthenticationSchemes = "Bearer")]
public class MixedController : Controller
详细的
现在,即使在使用客户端凭据时,User.Identity声明也会填充来自令牌的声明和作用域,并且用户显示为Authenticated=true