Я создал приложение 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();
Затем у меня есть приложение веб-API Asp.Net Core 2.2, также работающее в контейнере 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 контейнера Docker сервера авторизации)
Но я получаю следующую ошибку:
Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10501: Ошибка проверки подписи. Невозможно сопоставить ключи: ребенок: «[ПИИ скрыта]», токен: «[ПИИ скрыта]».
Что я упускаю или что я делаю не так?
~/.dotnet/corefx/cryptography/x509stores
в Linux), указывает на постоянную папку. - person Kévin Chalet   schedule 26.01.2019