2017-09-26 6 views
0

Auth0を使ってウェブwebAPI netcoreapp 2.0を安全にしたかったので、私はすべてthe stepsでした。Auth0を使って認証ベアラのアクセストークンを私のAPIに送ったとき

私は認可を送信しないと401を持っていますが、それは問題ありません。

私は[承認]

を入れていないとき、私は私がベアラ+ accessToken(Auth0のウェブサイト上のAPIからのトークンをコピーした)

でAuthorizationヘッダを置く500の200を持っているがあります

誰にもこの問題がありましたか?

スタートアップで
public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(); 


    services.AddAuthentication(options => 
    { 
     options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; 
     options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; 

    }).AddJwtBearer(options => 
    { 
     options.Authority = "https://******.eu.auth0.com/"; 
     options.Audience = "https://**************.azurewebsites.net/"; 
    }); 
public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{ 

    app.UseAuthentication(); 

    app.UseSwagger(); 

    app.UseSwaggerUI(c => 
    { 
     c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); 
    }); 

    app.UseDeveloperExceptionPage(); 

    app.UseStaticFiles(); 

    app.UseMvcWithDefaultRoute(); 
} 
+0

コア1.1または2.0?/どのようにトークンを生成していますか? –

+0

こんにちは、それはnetcoreapp 2.0です 私は非インタラクティブクライアントページでAuth0でトークンを生成しています。 –

答えて

0

:どこでも

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) 
       .AddJwtBearer(options => 
       { 
        options.TokenValidationParameters = 
         new TokenValidationParameters 
         { 
          ValidateIssuer = true, 
          ValidateAudience = true, 
          ValidateLifetime = true, 
          ValidateIssuerSigningKey = true, 
          ValidIssuer = TokenConstants.ValidIssuer, 
          ValidAudience = TokenConstants.ValidAudience, 
          IssuerSigningKey = JwtSecurityKey.Create(TokenConstants.IssuerSigningKey), 

         }; 
       }); 

public static class JwtSecurityKey 
    { 
     public static SymmetricSecurityKey Create(string secret) 
     { 
      return new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secret)); 
     } 
    } 

私はここに私自身のキーを作成していますが、.NETは、単にランダムな文字列である.IssuerSigningKeyに基づいて、それを解読する方法を知っていますそれは何か "IAMsuperS3cretEcnryptionKey"のようなことができます私はそれが何であるか分かりませんし、内部サーバーのエラーをスローするので、あなたのトークンを解読しようとすることによって.NETが落ちると想像し、signiを含める必要がありますAUTH0キーを使用してAPIを解読します。

関連する問題