API网关如何通过自省来验证访问令牌

问题描述 投票:2回答:3

我发现了一篇有趣的文章,上面有此插图:

enter image description here

它说:

API网关通过自省验证所有传入请求的访问令牌

但是这是什么意思?

它说网关进入授权服务器并验证令牌(JWT)。为什么需要那?

如果网关具有授权服务器的公钥,它可以像每个后端服务一样使用签名来检查令牌的有效性,为什么需要自省以及如何进行自省?

api security authentication jwt microservices
3个回答
1
投票

取决于您的身份提供者,可以通过任何一种方法来完成,但是需要权衡取舍。

如果您在本地验证令牌,那么可以使用公钥来做到这一点,这是非常有效的方法,但是缺点是,如果令牌或签名密钥被吊销,则您的令牌仍然有效。使用远程检查,您必须承担HTTP开销,但这更可靠。

通常,令牌会短暂存在并在本地进行验证。但是,如果您的访问令牌寿命很长,则您的应用程序需要严格的访问控制,或者库不支持本地验证,那么最好进行远程检查]


1
投票

我相信您正在看this document

我从此安全API网关了解到,网关负责introspection,后端服务将仅检查令牌签名,该签名比自省的安全性低,但仍然是安全层。

自省对于根据Authorization Server验证令牌信息是必需的。这是更安全的,因为系统可以确保接收到的令牌不是恶意的,已过期且来自已知来源。RFC 7662中详细说明了如何完成。

是,如果网关可以访问证书,则可以验证令牌签名。我真的无法说出他们为什么选择后端服务器来执行此操作,这可能是项目决定。


0
投票

API网关主要用于将传入的呼叫路由到相应的MicroService群集。

此外,它还可以起到验证令牌的作用,以便仅将有效流量路由到下游服务器(过滤恶意流量)。

验证级别可能取决于产品所有者/建筑师的决定。它可以像对内存中缓存的令牌列表进行验证一样简单,也可以对声明集,数字签名验证,到期时间,受众声明等进行深度验证。

您可以使用https://devtoolzone.com/decoder/jwt之类的JWT解码器查看令牌内的声明集。>

© www.soinside.com 2019 - 2024. All rights reserved.