如何在 Istio/K8 中设置自定义身份验证和授权?

如何在 Istio/K8 中设置自定义身份验证和授权?

假设我有一个包含 8 个 pod(服务)的项目。我了解 Istio Gateway 使用 jwt 进行身份验证和授权。这样每个请求都经过验证。但具有不同角色的用户(例如:[老师、学生、工作人员])需要有一个端点来使用用户名和密码进行注册/登录/注销。Istio Gateway 是否有办法处理用户创建并将其保存到数据库并生成 jwt?或者我必须创建另一个专用于 Auth 的 Pod(服务)并从此 pod 生成 jwt?如果是这样,我如何才能直接从网关设置 jwt 验证?

感谢您花时间阅读本文)

答案1

Istio Gateway 是否有办法处理用户创建并将其保存到数据库并生成 jwt?

不,要做到这一点,您需要创建一个生成令牌的身份验证微服务(应用程序)。

Istio 负责验证JWT 令牌在传入的用户请求中。因此,如果您实现 Istio JWT 身份验证功能,您的应用程序代码就不需要担心 JWT 令牌验证。Istio 会为您完成这项工作。不是 JWT 令牌生成。Istio 不会为您生成令牌。这应该由身份验证微服务完成。Istio 将检查 JWT 是否有效。

这里您可以找到分步指南,了解 Istio 和 JWT 如何用于微服务身份验证。您还可以在那里找到许多基于 JWT 的授权方案。

也可以看看:

相关内容