제가 제작 한 minimal verifiable sample과 함께 ASP.NET Core 1.0 (rtm)을 사용하면 제가 제작 한 JSON Web Token이 그물 코어 JSON 웹 토큰 미들웨어 주장 도전을 전달하고이 오류와 함께 실패 : 나는 ASP.NET 코어 RC1에서 잘 작동 최소한의 샘플을 생산UseJwtBearerAuthentication이 IDX10504와 함께 실패했습니다. 서명을 확인할 수 없습니다. 토큰에 서명이 없습니다.
Microsoft.IdentityModel.Tokens.SecurityTokenInvalidSignatureException:
IDX10504: Unable to validate signature, token does not have a signature:
'... ... token value here...'
하지만 RTM에서 작동하지 않는 . 나는 시험하기 위해 RC2에 이식하지 않았지만, 그런 시험은 무의미하다고 생각합니다. 당신은 제공하는 테스트 스크립트를 사용하여 데모를 행사할 수 :
python tests\testloginapi.py
GET OK: 200 http://localhost:54993/authorize/login?username=TEST&pas...
POST OK: 200 http://localhost:54993/authorize/login?username=TEST&pas...
authorization token received... eyJhbGciOi...
expected status 200 but got 401 for GET http://localhost:54993/authorizetest/test
내 최소한의 예
두드러진 점은 다음과 같습니다
Startup.cs 방법 구성이 있습니다
app.UseJwtBearerAuthentication(_keyArtifacts.getJwtBearerOptions());
베어러 옵션은 다음과 같이 있습니다 :
public static JwtBearerOptions CreateJwtBearerOption(RsaSecurityKey key, string tokenIssuer, string tokenAudience)
{
var jwtBearerOptions = new JwtBearerOptions();
jwtBearerOptions.AutomaticAuthenticate = true;
jwtBearerOptions.AutomaticChallenge = true;
jwtBearerOptions.TokenValidationParameters.ValidateIssuerSigningKey = true;
jwtBearerOptions.TokenValidationParameters.IssuerSigningKey = key;
jwtBearerOptions.TokenValidationParameters.ValidIssuer = tokenIssuer;
jwtBearerOptions.TokenValidationParameters.ValidateIssuer = true;
jwtBearerOptions.TokenValidationParameters.ValidateLifetime = true;
jwtBearerOptions.TokenValidationParameters.ClockSkew = TimeSpan.Zero;
jwtBearerOptions.TokenValidationParameters.ValidAudience = tokenAudience;
return jwtBearerOptions;
}
이 질문의 진정한 의미는 다음과 같습니다.
Asp.net core 1.0 rtm에서 미들웨어 챌린지를 통과하는 토큰을 만드는 데 필요한 최소 단계는 무엇입니까?
"서명하는"작업을 포함하여이 데모 작업을 수행하는 간단한 단계 (코드 한 줄 정도)가 누락 되었습니까?
demo이 여전히 끔찍한 코드이므로 아무도 생산에 사용하지 않아야합니다. (나는 이미 부끄럽기 때문에)이 질문은 여전히 어떻게 만들어 지는지에 대한 조명입니다. 적어도 데모 스케일에서는
UseJwtBearerAuthentication
시스템이 실제로 작동합니다. 오류 당신 '에 설명 된대로
유용한 정보 https://stormpath.com/blog/token-authentication-asp-net-core –