簡體   English   中英

Azure Active Directory導致忽略JWT令牌

[英]Azure Active Directory causes JWT token to be ignored

我正在使用BearerTokenAuthentication

Azure Portal我激活了Azure Active Directory以防止第三方訪問我部署的網站。

但是,在激活Active Directory功能時,Azure會為每個請求附加Cookie ,這會導致ClaimsPrincipal包含來自Active Directory的Cookie的數據,而不是我隨其發送的Bearer Token中包含的數據。

這就是我發現未從Bearer令牌收集主體的方法:

[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"));

激活承載認證類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM