Задача была отменена
Я пытаюсь совместно использовать identityserver3 и web api (для управления пользователями с помощью токенов Bearer) в одном запуске. Однако я получаю следующую ошибку: Задача была отменена. Похоже, что отмена задачи происходит при запуске при попытке вызвать http://identity_local/core/.well-known/openid-configuration (identity_local указывает на localhost).
Мой стартап выглядит следующим образом:
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);
});
Кто-нибудь знает, если а) возможно ли иметь оба при одном запуске и б) если да, что я сделал неправильно или что я могу сделать, чтобы исправить вышеперечисленное.
1 ответ
Во время запуска UseIdentityServerBearerTokenAuthentication
пытается связаться с конечной точкой метаданных IdentityServer, но так как сервер еще не запущен, он не может подключиться, что приводит к ошибке.
Для этой ситуации есть флаг под названием DelayLoadMetadata
отложить загрузку метаданных до тех пор, пока они не понадобятся в первый раз: https://identityserver.github.io/Documentation/docsv2/consuming/options.html