2016-11-05 2 views
1

은 내가 IdSrv4에서 액세스 토큰을 얻고 난IdentityServer3.AccessTokenValidation API와 IdentityServer4

var client = new HttpClient(); 
client.SetBearerToken(token.AccessToken); 
var response = await client.GetAsync("http://localhost:60602/api/users"); 

내가이 오류 메시지가 얻을 토큰 내 API를 호출 할 때 : 내가 읽은

Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware Error: 0 : Authentication failed System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.First[TSource](IEnumerable 1 source) at IdentityServer3.AccessTokenValidation.DiscoveryDocumentIssuerSecurityTokenProvider.<RetrieveMetadata>b__1(JsonWebKey key) in c:\local\identity\server3\AccessTokenValidation\source\AccessTokenValidation\Plumbing\DiscoveryDocumentIssuerSecurityTokenProvider.cs:line 152 at System.Linq.Enumerable.WhereSelectListIterator 2.MoveNext() at System.IdentityModel.Tokens.JwtSecurityTokenHandler.ResolveIssuerSigningKey(String token, SecurityToken securityToken, SecurityKeyIdentifier keyIdentifier, TokenValidationParameters validationParameters) at System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters) at System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateToken(String securityToken, TokenValidationParameters validationParameters, SecurityToken& validatedToken) at Microsoft.Owin.Security.Jwt.JwtFormat.Unprotect(String protectedText) at Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationHandler.d__0.MoveNext()

을 이 문제는이 코드에 의해 생성 된 인증서를 추가하고 https://github.com/ElemarJR/LearningIdentityServer4/tree/master/LearningIdentityServer.OAuth

성공하지 못했습니다.

WebApi 코드 ...

app.UseCookieAuthentication(new CookieAuthenticationOptions()); 
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 
JwtSecurityTokenHandler.InboundClaimTypeMap.Clear(); 
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions 
{ 
     Authority = "http://localhost:5000",//Constants.BaseAddress, 
     RequiredScopes = new[] { "api1" }, 
}); 

...

어떤 제안?

+0

이 살펴보고 identityserver3.accesstokenvalidation를 업그레이드해야합니다 https://github.com/IdentityServer/IdentityServer3.AccessTokenValidation/issues/108 해결책이있는 것으로 보입니다. –

답변

관련 문제