【发布时间】:2018-09-30 15:17:27
【问题描述】:
我有一个位于 API 网关后面的 API。 API Gateway 在将请求传递给 API 之前验证承载令牌。
我的 API 使用 asp.net core 2.0 本机身份验证和基于声明的授权框架。从 JWT 令牌获取声明的繁重工作由 Microsoft.AspNetCore.Authentication.JwtBearer 中的中间件完成。
这个中间件可以配置为忽略令牌的过期日期,也可以指定一个本地公钥,这样就不需要联系令牌授权机构来获取一个,但是可以只禁用令牌上的签名验证?
这将允许在开发中使用未签名的令牌进行临时测试,并防止在生产中进行双重验证(网关和 API)。
【问题讨论】:
-
我认为如果您清除默认令牌验证器并提供您自己的 ISecurityTokenValidator 跳过任何验证应该这样做。 github.com/AzureAD/…
-
@Eli Algranti 能找到任何方法吗?我目前遇到了同样的问题。
-
只是为了分享我的设计。我也在使用这种方法来禁用网关和 api 级别的双重验证。我使用 nginx+ 作为 api 网关,identityserver4 来生成令牌。 Api 网关将进行验证。这将消除在 api 级别完成令牌验证的需要(它可以来自 .net、java 等)
标签: c# asp.net-core