比方说,我有一个有 8 个 pod(服务)的项目。我了解 Istio Gateway 中使用 jwt 涵盖了身份验证和授权。这样每个请求都得到验证。但是具有不同角色的用户例如:[教师、学生、员工] 需要有一个端点来使用用户名和密码进行注册/登录/注销。有没有办法让 Istio Gateway 处理用户创建,将其保存到 db 并生成 jwt?或者我是否必须制作另一个专用于 Auth 的 Pod(服务)并从此 pod 生成 jwt?如果是这样,我怎样才能直接从网关设置 jwt 验证?
感谢您抽出时间阅读本文)
不,要做到这一点,您需要创建一个生成令牌的身份验证微服务(应用程序)。
Istio 负责验证传入用户请求中的JWT 令牌的任务。因此,如果您实现 Istio JWT 身份验证功能,您的应用程序代码就无需担心 JWT 令牌验证。Istio 会为您完成。不是 JWT 令牌生成。Istio 不会为您生成令牌。这应该由身份验证微服务完成。Istio 将检查 JWT 是否有效。
在这里,您可以找到分步指南,了解 Istio 和 JWT 如何进行微服务身份验证。在那里您还会发现许多基于 JWT 的授权方案。
也可以看看: