2016-06-12 4 views
1

같은 시작에서 identityserver3 및 웹 API (무기명 토큰을 사용하는 사용자 관리 용)를 공동 호스팅하려고합니다. 그러나 다음 오류가 발생합니다. 작업이 취소되었습니다. http://identity_local/core/.well-known/openid-configuration (identity_local이 localhost를 가리킴)을 호출 할 때 시작시 작업 취소가 발생합니다. 그것은이 가능합니다)는 같은 시작에서와 b) 그렇다면, 무엇이 내가 잘못했을 또는 I가 무엇을 할 수 모두 가지고있는 경우작업이 취소되었습니다.

app.Map("/core", idsrvApp => 
     { 
      var factory = new IdentityServerServiceFactory(); 
      factory.UserService = new IdentityServer3.Core.Configuration.Registration<IUserService, UserService>(); 
      factory.ScopeStore = new IdentityServer3.Core.Configuration.Registration<IScopeStore>(resolver => scopeStore); 
      var options = new IdentityServerOptions 
      { 
       SigningCertificate = Certificate.Load(), 
       IssuerUri = "http://identity_local/core", 
       PublicOrigin = "http://identity_local", 
       RequireSsl = false, //for now 
       Factory = factory, 
      }; 

      idsrvApp.UseIdentityServer(options); 
     }); 

     app.Map("/admin", adminApp => 
     { 
      adminApp.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions 
      { 
       Authority = "http://identity_local/core", 
       IssuerName = "identity_local", 
       ValidationMode = ValidationMode.Local, 
       RequiredScopes = new[] { "api", "roles" } 
      }); 

      adminApp.UseResourceAuthorization(new AuthorisationManager()); 

      var config = new HttpConfiguration(); 
      config.MapHttpAttributeRoutes(); 

      adminApp.UseCors(CorsOptions.AllowAll); 
      adminApp.UseWebApi(config); 

     }); 

는 아는 사람 있나요 : 다음과 같이

내 시작이다 위의 문제를 해결하십시오.

답변

6

시작시 UseIdentityServerBearerTokenAuthentication은 IdentityServer 메타 데이터 엔드 포인트에 연결하려고 시도하지만 서버가 아직 실행 중이 지 않으므로 연결할 수 없으므로 오류가 발생합니다. 당신은 나의 영웅입니다 https://identityserver.github.io/Documentation/docsv2/consuming/options.html

+0

:

이 상황에 대한

는, 그것이 필요한 처음 할 때까지 메타 데이터를로드 지연 DelayLoadMetadata라는 깃발있다! 나는 일주일 동안 해결책을 찾고 있었다. 그리고 간단히'IdentityServerBearerTokenAuthenticationOptions'에'DelayLoadMetadata = true'를 설정하면 트릭이 실행됩니다. 이것은 정답으로 표시되어야합니다. 실제로 그것은 IdentityServer3에 의한 시작 연습에 있어야합니다. – Michael

관련 문제