OpenIddict: использование AddDevelopmentSigningCertificate () - PullRequest
0 голосов
/ 23 января 2019

Я создал приложение 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 скрыт]'.

Что мне не хватает или что я делаю неправильно?

1 Ответ

0 голосов
/ 27 января 2019

URL-адрес для опции Authority для AddJwtBearer был неверным. В случае, если кто-то получит такое же вводящее в заблуждение сообщение об ошибке.

...