私はクライアントからアクセストークンを取得してAPIを使用する権限を与えるために、jwtを使用して権限を与える方法についてセクション2を取り上げました。しかし、私はこれを動作させるように見えることはできません。私はを伴うポストマンから401のメッセージを取得し続ける:JwtBearerAuthenticationOptionsを使用しているときにWeb 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/
チュートリアルの最初のセクションがありませんので、アクセストークンは、私はJavaで作成した認証サービスから来ます私には当てはまりません。
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ではないので、それがあります私の秘密を暗号化して、発行者を私の中に入れない。
ポストマン
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
任意の助けいただければ幸いです。
ありがとうございます!