首页 文章

将基于令牌的身份验证与Windows身份验证相结

提问于
浏览
1

我们目前有一个使用Windows身份验证的内部API . 我一直在考虑将此API公之于众,其中一个要求是应该可以在没有域用户的情况下登录 . 域用户仍应该能够登录,并且应该被视为超级管理员(访问所有内容) .

很明显,不久之后,我们将需要角色或基于声明的授权 . 作为原型,我使用ASP.NET Identity实现了一个系统 . 使用JWT令牌和基于声明的授权 .

但是,如何确保使用Windows身份验证进行身份验证的用户可以跳过令牌步骤并直接使用API?

1 回答

  • 2

    找到一个解决方案,我将自定义AuthorizationFilterAttributes添加到我的 endpoints . 在属性中,我检查Principal类型:

    public override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
        {
            if (actionContext.RequestContext.Principal is WindowsPrincipal)
            {
                return Task.FromResult<object>(null);
            }
            //Custom logic here
            [...]
        }
    

相关问题