2

鉴于:

  • 身份服务器 v3
  • 带有 aspcore 2.0 的客户端 WebApp

设想:

将 aspcore 1.1 与 Identity Server v3 一起使用时,我需要设置 LegacyAudienceValidation = true(请参阅.net core Client does not authenticate with IdentityServer v3 - Offset in Audience (

现在我迁移到 .net core 2.0。并按照本指南迁移身份,还有其他选项,并且在核心 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 的某些内容,或者是否有任何提示如何解决这个差距?

4

1 回答 1

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
            });
于 2017-10-31T08:57:29.487 回答