authentication - 为什么API网关和认证服务应该不同?

标签 authentication authorization microservices api-gateway role-base-authorization

使用 API 网关进行授权有哪些优点和缺点?如果 API 的 JWT token 与 header 中现有 API 的权限相同,我可以在 API 网关上进行匹配。在授权服务中匹配它也将包括开销。

最佳答案

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

如果您提前获得了其公钥,则可以在不联系授权服务的情况下验证 token ,以便您可以验证源自它的 JWT(例如,参见 https://jwt.io/ )此外,您还希望 token 具有一些声明,例如在时间 (iat) 必须是过去的时间;过期 (exp) 必须是 future 的,发行者 (iss) 必须是您的身份验证服务,登录时间 (auth_time) 必须是过去的,受众 (aud) 您的项目的 ID,可能还有一些与以下内容相关的自定义声明你的项目

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

关于authentication - 为什么API网关和认证服务应该不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58762856/

相关文章:

php - laravel - 登录重定向丢失了 url 哈希

architecture - 在微服务中,我应该使用 pub/sub 而不是 RPC 来获得更松散耦合的架构吗?

rest - 微服务、amqp 和服务注册/发现

java - 使用 HttpClient 提供凭据后以编程方式注销

mongodb - 在 MongoDB 中为现有用户更改密码

ruby-on-rails - 通过 Omniauth 实现 facebook 登录的 SSL 证书问题 - Windows 机器

authorization - 如何通过 Cognito 使用自定义权限

android - OAuth 2.0、Android 和 cookie

php - Laravel 授权策略 AccessDeniedHttpException 此操作未经授权

java - 微服务 - RestTemplate UnknownHostException