簡體   English   中英

使用JwtBearerAuthenticationOptions時未授權Web API

[英]Web API not authorized when using JwtBearerAuthenticationOptions

我已從演練的第二部分中獲取了如何使用jwt進行授權的信息,這樣我就可以從客戶端獲取訪問令牌並授權他們使用api。 但是,我似乎無法使它正常工作。 我不斷收到Postman的401消息,並伴隨着:

{
  "Message": "Authorization has been denied for this request."
}

教程鏈接: http : //bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/

訪問令牌來自我用Java創建的授權服務,因此本教程的第一部分不適用於我。

智威湯遜

{
  "exp": 1489641048,
  "user_name": "testuser",
  "authorities": [
    "USER"
  ],
  "jti": "2dde11c3-2f06-496c-9b36-4dbf71cdc2e2",
  "client_id": "webreport_service",
  "scope": [
    "USER"
  ]
}

Web API代碼段

 public void ConfigureOAuth(IAppBuilder app)
    {

        var audience = "webreport_service";

        // Api controllers with an [Authorize] attribute will be validated with JWT
        app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { audience },
                IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                {

                    new SymmetricKeyIssuerSecurityTokenProvider("Any", "abc123")
                }
            });

    }

它與第2節中的鏈接稍有不同,但這是因為我不對我的秘密進行base64編碼,而且我也沒有將發行人放在jwt中。

郵差

GET /api/protected HTTP/1.1
Host: localhost:54706
Authenticate: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0ODk2NDEyOTAsInVzZXJfbmFtZSI6InRlc3R1c2VyIiwiYXV0aG9yaXRpZXMiOlsiVVNFUiJdLCJqdGkiOiJlMDNkNWZmZC1hZWI4LTRkODctOGQ3My0zNjhjYjQ2ZDg2OWUiLCJjbGllbnRfaWQiOiJ3ZWJyZXBvcnRfc2VydmljZSIsInNjb3BlIjpbIlVTRVIiXX0.C4hivwA1VF-0GO0xCVUoDIheWQWlAcVWvAzChZTgrHY
Cache-Control: no-cache
Postman-Token: ff628109-d5f4-76e0-41c2-e0c7d377b93f

任何幫助將不勝感激。

謝謝!

我認為,請檢查以下內容:

首先:

檢查您的秘密base64代碼。 'abc123'是真的嗎? 我正在您的密碼上jwt.io網站上檢查您的令牌。 但簽名無效

其次:

檢查您的有效載荷值。 什么是“ iss”您的jwt有效載荷。 /您的發行人驗證設置為“任何”

什么是“聽”您的jwt有效載荷。 /您的受眾群體驗證設置為“ webreport_service”

想一想。

最良好的問候

暫無
暫無

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

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