为啥 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网关架构中对不同的配置文件进行身份验证和授权