Authentication

为了限制特定的服务访问,需要对服务的来源身份进行认证,不仅防止外部的恶意访问,集群内部的服务也要做限制。实现认证一般有两种方式:

  • 使用证书签名
  • 使用jwt token

image-20211108113159087

Istio 提供两种类型的认证:

  • Peer authentication:用于服务到服务的认证,以验证进行连接的客户端。Istio 提供双向 TLS 作为传输认证的全栈解决方案,无需更改服务代码就可以启用它。这个解决方案:

    • 为每个服务提供强大的身份,表示其角色,以实现跨群集和云的互操作性。
    • 保护服务到服务的通信。
    • 提供密钥管理系统,以自动进行密钥和证书的生成,分发和轮换。
  • Request authentication:用于最终用户认证,以验证附加到请求的凭据。 Istio 使用 JSON Web Token(JWT)验证启用请求级认证,并使用自定义认证实现或任何 OpenID Connect 的认证实现来简化的开发人员体验。

demo

在bookinfo app里,对default namespace添加peer authentication, 此时访问app service时,状态码不是200