【发布时间】:2018-03-17 22:58:39
【问题描述】:
我们正在更改我们的应用程序身份验证架构以切换到 Json Web Token。
实际上,传入的请求首先通过一个 API 网关,该网关将请求分派到我们堆栈的各种微服务。
每个请求中传递的 JWT 的认证和验证都是在网关中完成的。
认证后你会用 JWT 做什么?
- 将其“原样”传递给后续微服务?
- 在网关中对其进行解码,仅将解码后的有效负载传递给服务?
我看到两种解决方案的优缺点:
专业人士:我们一直保留一个标准的 Authentification http 标头。 缺点:我们必须在每个服务中解码令牌。
专业人士: Token 已经解码并可以直接在服务中使用。 缺点:我们必须使用非标准的 http 标头来传递解码后的有效负载。
在这种情况下有什么“标准”方式吗?
你有什么意见?
谢谢!
【问题讨论】:
-
将 JWT 保存在 cookie 中。默认情况下,它在每个请求中作为标头传递给服务器。然后您可以在服务器请求处理程序中对其进行解码。
-
令牌将存储在客户端(SPA 应用程序)的 cookie 中,并在每次请求时传递给 API 网关。网关将对其进行验证并接受/拒绝请求。如果请求被接受,令牌将被传递到底层微服务。我的问题是:身份验证后,我应该将 JWT 令牌直接传递给服务,还是只传递解码的 JWT 有效负载?我知道两者都可以,但我想知道是否有任何“最佳实践”。
标签: authentication jwt microservices api-gateway