OpenIddict:使用AddDevelopmentSigningCertificate()(Op

2019-10-16 13:06发布

我使用OpenIddict与隐流创建一个Asp.Net 2.2的核心应用与DefaultIdentity。 这个应用程序在一个码头工人容器中运行。 我想用我的开发环境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 2.2核心的Web API应用也处于泊坞容器中运行。 我通过Swashbuckle和智威汤逊承载认证使用扬鞭。

            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:签名验证失败。 无法匹配关键字:孩子: '[PII隐藏]',标记: '[PII隐藏]'。

我在想什么还是什么我做错了?

Answer 1:

对于AddJwtBearer管理局选项的链接是错误的。 如果有人得到了相同的误导性的错误消息。



文章来源: OpenIddict: Using AddDevelopmentSigningCertificate()