繁体   English   中英

使用身份服务器 3 和身份服务器 4 创建的令牌保护 API

[英]Securing API using Identity Server 3 with token created by identity server 4

我正在使用 Identity Server 4 来验证客户端并生成令牌。 该网站是在 Angular 中创建的,带有 .Net 内核,但已经开发的 API 仍在 .NET 框架 4.7.1 中,不支持 Identity Server 4。

因此,为了保护 API,我为 API 配置了支持 .NET 框架 4.7.1 的 Identity Server 3,但问题是它没有验证 Identity Server 4 生成的令牌。

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = "http://localhost:5000",
                AuthenticationType = "Bearer",
                RequiredScopes = new[] { "api_to_be_protected" }
            });

有什么方法可以验证令牌并保护 API 免受未经授权的未知客户端的影响,还可以验证 Identity Server 4 创建的令牌

在您的身份服务器上,您应该将 EmitLegacyResourceAudienceClaim 选项设置为 true

var identityServerBuilder = services.AddIdentityServer(opt =>
            {
                opt.EmitLegacyResourceAudienceClaim = true;
            });

可以在此处找到有关此属性的更多信息: https://identityserver4.readthedocs.io/en/latest/reference/options.html

我还发现 nuget package IdentityServer3.Contrib.AccessTokenValidation最近更新以支持 IDSrv 4,我建议您使用它而不是IdentityServer3.AccessTokenValidation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM