gpt4 book ai didi

spring-mvc - Kubernetes 中微服务之间的身份验证

转载 作者:行者123 更新时间:2023-12-02 12:05:56 24 4
gpt4 key购买 nike

我们有几个用 Java/Kotlin 和 Spring MVC 实现的微服务,在 Tomcat docker 镜像中运行。这些服务提供由用户的 cookie/ session 进行身份验证的公共(public) API。这些工作正常。

现在,我们想创建一个内部端点,无论是在 GKE 之外还是通过某种内部身份验证都无法访问该端点。

特别是对于 Spring MVC 和 GKE,什么是好方法?

编辑:

我想在一项服务上验证不同的端点。例如:

  • /public/ - 无身份验证
  • /private/ - 用户必须登录
  • /internal/ - 只有其他微服务可以访问

  • 我更愿意在应用程序级别实现这样的身份验证,但我不确定什么是最好的方法。内部 Google IP 的 IP 范围?其他安全识别调用者的方法?

    也许我的想法很糟糕,如果是这样,我会很乐意改变主意。

    最佳答案

    您的问题不是 GKE 特定的。这是一个广泛的 Kubernetes 问题。

    我鼓励您搜索 Kubernetes 服务身份验证。

    有很多方法可以做到这一点,包括滚动您自己的身份验证模型。在这里可以提供帮助的一项功能是 Kubernetes NetworkPolicy 资源(它就像防火墙),您可以在此处了解更多信息 https://kubernetes.io/docs/concepts/services-networking/network-policies/并在此处查看一些示例:https://github.com/ahmetb/kubernetes-network-policy-recipes (请记住,这是防火墙,而不是身份验证。)

    如果您想自动获得此功能,可以使用 Istio (https://istio.io),它允许您在所有服务之间自动设置双向 TLS,而无需更改任何代码。 Istio 还为每个工作负载提供了强大的标识。您可以使用 Istio 的身份验证策略在您的微服务之间设置身份验证,而无需更改您的应用程序代码,这真的很酷:https://istio.io/docs/tasks/security/authn-policy/

    关于spring-mvc - Kubernetes 中微服务之间的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210404/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com