[英]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.