我正在尝试在一些新的ASP.NET Core web apis上使用标准的AuthenticationBuilder扩展方法AddJwtBearer,它仍会获得IdentityServer3创建的承载令牌。我认为验证对api的资源访问(id server3中所需的范围)的最佳选择是确保我可以像在identityserver4中那样将范围值添加到受众,或者为范围添加一些验证在配置中声明AddJwtBearer方法,如果可能的话(看起来但没有看到任何东西)。
IdentityServer3中是否有一种方法可以使访问令牌的受众成为一个数组,并将任何资源范围添加到其中,以便具有权限和受众的令牌验证现在可以使用idsrv3令牌,并在我们完成后继续干净地工作升级到idsrv4?
答案 0 :(得分:0)
这就解决了我的问题。身份服务器GitHub网站上的测试非常有用。
我需要将LegacyAudienceValidation设置为true:
然后使用新的ASP.NET Core策略系统添加显式范围验证:
作为背景,在IS3中,他们没有将api名称放在观众中,而是仅在范围集合中。在IS4中,他们将api名称放在观众和api范围内(可能与api名称相同或不同)。