2017-03-15 7 views
0

jwt를 사용하여 권한을 부여하는 방법에 대해 2 절에서 설명 했으므로 클라이언트에서 액세스 토큰을 가져와 API 사용 권한을 부여 할 수 있습니다. 그러나, 나는 이것을 작동시킬 수 없다. 나는 함께 우체부에서 401 메시지를 받고 계속 :JwtBearerAuthenticationOptions를 사용할 때 웹 API가 승인되지 않았습니다.

{ 
    "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/

튜토리얼의 첫 번째 섹션 않도록 액세스 토큰, 나는 자바에서 만든 인증 서비스에서 제공 나에게 적용되지 않는다.

JWT

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

웹 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 

이죠.

감사합니다.

답변

0

은 그래서 다음을 확인 생각 : 첫째

:

이 비밀 base64로 코드를 확인합니다. 'abc123'이 맞습니까? 비밀 코드로 jwt.io 웹 사이트의 토큰을 확인합니다. 하지만 잘못된 서명

둘째 :

귀하의 페이로드 값을 확인하십시오. jwt 페이로드는 'iss'무엇입니까?/귀하의 발행자 유효성 검사 세트 '모두'

jwt 페이로드는 'aud'입니까?/잠재 고객이 'webreport_service'세트를 확인 함

생각해보십시오.

우수