我使用带有隐式流的Asp.Net DefaultIdentity创建了一个OpenIddict核心2.2应用程序。此应用程序在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 Core2.2WebAPI应用程序,它也运行在一个Docker容器中。我正在使用Swagger通过Swashbuckle和JWT比勒认证。
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是隐藏的’。
我错过了什么或者我做错了什么?
发布于 2019-01-27 00:59:20
AddJwtBearer的权限选项的url是错误的。以防有人收到同样的误导性错误信息。
https://stackoverflow.com/questions/54333631
复制相似问题