为啥 API 网关和认证服务应该不同?

Posted

技术标签:

【中文标题】为啥 API 网关和认证服务应该不同?【英文标题】:Why should API gateway and authentication service be different?为什么 API 网关和认证服务应该不同? 【发布时间】:2020-03-04 20:49:33 【问题描述】:

使用 API 网关进行授权的优缺点是什么?如果 API 在标头中有 JWT 令牌和现有 API 的权限,我可以在 API 网关上匹配它。在授权服务中匹配这个也将包括开销。

【问题讨论】:

【参考方案1】:

您可以使用 API 网关检查 JWT 令牌,但您需要一些东西来发布该令牌,首先是授权服务。

如果您提前获得了令牌的公钥,则无需联系授权服务即可验证令牌,这样您就可以验证源自它的 JWT(例如,参见 https://jwt.io/)您还希望令牌有一些声明,例如在必须是过去的时间(iat);过期(exp)必须在将来,发行者(iss)必须是您的身份验证服务,登录时间(auth_time)必须是过去,受众(aud)您的项目的ID,可能还有一些与相关的自定义声明你的项目

如果你拥有所有这些,那么你确实可以在 api 网关上强制执行授权

【讨论】:

以上是关于为啥 API 网关和认证服务应该不同?的主要内容,如果未能解决你的问题,请参考以下文章

如何在微服务和API网关架构中对不同的配置文件进行身份验证和授权

为啥微服务推荐使用 API 网关?

如何在微服务和 API 网关架构中对不同的配置文件进行身份验证和授权

AWS 无服务器架构 – 为啥要使用 API 网关?

谈API网关的背景架构以及落地方案

我们应该在微服务之间使用api网关(例如zuul)吗?