2017-09-26 4 views
0

Auth0을 사용하여 웹 webAPI netcoreapp 2.0을 보안 화하려고 했으므로 모두 the steps을 수행했습니다.Auth0을 사용하여 인증 Bearer accessToken을 내 API로 보낼 때

나는 승인을 보내지 않으면 401이됩니다. 괜찮습니다. 내가

나는 (Auth0 웹 사이트에 API에서 토큰을 복사)

무기명 + accessToken과 함께 인증 헤더를 넣어 500 되세요 [권한 부여]를 넣지 않는 경우

나는 200 되세요

누구에게이 문제가 있습니까?

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 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

내가 여기에 내 자신의 키를 생성하고

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

하지만 .NET은 임의의 문자열 인 .IssuerSigningKey에 기반을 해독하는 방법을 알고 그것은 "IAMsuperS3cretEcnryptionKey"와 같을 수 있습니다. .NET이 무엇인지 알지 못하고 내부 서버 오류가 발생하여 토큰을 해독하려고하면 .NET이 넘어집니다. signi를 포함해야합니다. 키 AUTH0는 API를 해독하기 위해 사용합니다.