Azure Active Directory导致JWT令牌被忽略



我用的是BearerTokenAuthentication

Azure Portal中,我激活了Azure Active Directory,以防止第三方访问我部署的网站。

但是当激活Active Directory特性时,Azure将Cookie附加到每个请求,这导致claimprincipal包含来自Active Directory cookie的数据,而不是包含在我发送的承载令牌中的数据。

这就是我如何发现主体没有从承载令牌中收集到的:

[RoutePrefix("users")]
public class UsersController : ApiController
{
    [Authorize]
    [Route("me/claims")]
    public IHttpActionResult Me()
    {
        var caller = (ClaimsPrincipal)User;
        return Ok(caller.Claims.Select(claim => new KeyValuePair<string, string>(claim.Type, claim.Value)));
    }
}

这些是请求头:

accept:application/json
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
authorization:Bearer [Token]
Connection:keep-alive
Cookie:ARRAffinity=[AzureActiveDirectoryToken]

如何确保使用的唯一身份验证机制是Bearer Token ?

尝试将以下内容添加到您的web api配置

config.SuppressDefaultHostAuthentication();

忽略cookie,

config.Filters.Add(new HostAuthenticationFilter("Bearer"));

相关内容

  • 没有找到相关文章

最新更新