Я создал приложение Asp.Net Core 2.2 с DefaultIdentity, используя OpenIddict с неявным потоком.Это приложение работает в контейнере Docker.Я пытаюсь использовать опцию AddDevelopmentSigningCertificate () для своей среды разработки.
services.AddOpenIddict()
.AddCore(options =>
{
options.UseEntityFrameworkCore()
.UseDbContext<ApplicationDbContext>();
})
.AddServer(options =>
{
options.UseMvc();
options.EnableAuthorizationEndpoint("/connect/authorize");
options.RegisterScopes(OpenIdConnectConstants.Scopes.Email, OpenIdConnectConstants.Scopes.Profile, OpenIddictConstants.Scopes.Roles);
options.AllowImplicitFlow();
options.DisableHttpsRequirement();
options.AddDevelopmentSigningCertificate();
options.UseJsonWebTokens();
})
.AddValidation();
Затем у меня есть приложение Asp.Net Core 2.2 Web API, также работающее в контейнере Docker.Я использую Swagger через Swashbuckle и JWT Bearer Authentication.
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
JwtSecurityTokenHandler.DefaultOutboundClaimTypeMap.Clear();
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Authority = identityUrl;
options.RequireHttpsMetadata = false;
options.Audience = "supplier-service";
});
(identityUrl - это URL-адрес контейнера авторизации сервера авторизации)
Но я получаю следующую ошибку:
Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10501: Ошибка проверки подписи.Невозможно сопоставить ключи: kid: '[PII скрыт]', токен: '[PII скрыт]'.
Что мне не хватает или что я делаю неправильно?