AspCore 2.0和IdentityServer v3,受众验证失败

时间:2017-09-04 12:52:56

标签: asp.net asp.net-core identityserver3 asp.net-core-2.0 asp.net-authentication

假设:

  • IdentityServer v3
  • 使用aspcore 2.0的客户端WebApp

情境:

将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的内容,或者是否有任何提示如何解决这个问题?

1 个答案:

答案 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
            });