假设:
情境:
将aspcore 1.1与Identity Server v3一起使用时,我需要设置LegacyAudienceValidation = true
(参见.net core Client doesn't authenticate with IdentityServer v3 - Offset in Audience(
现在我迁移到.net core 2.0。并且遵循此guide迁移标识还有其他选项,并在核心1.0
中 问题:
因此,LegacyAudienceValidation
属性不再存在,因此我得到了审核验证错误。
Microsoft.IdentityModel.Tokens.SecurityTokenInvalidAudienceException: IDX10208:无法验证受众群体。 validationParameters.ValidAudience为null或空格 validationParameters.ValidAudiences为null。
我的客户端配置代码如下所示
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = Authority;
我是否遗漏了aspcore api的内容,或者是否有任何提示如何解决这个问题?
答案 0 :(得分:3)
您还可以使用IdentityServer4.AccessTokenValidation nuget包,并设置LegacyAudienceValidation
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
options.Authority = "identityserver";
options.ApiName = "yourapi";
options.LegacyAudienceValidation = true; // to make core 2.0 work with idsrv3
});