Istio提供两种类型的身份认证机制:
·传输身份认证,也称为服务间身份认证,用于认证客户端可否进行直接连接。Istio提供双向TLS作为传输身份认证的完整解决方案。在启用该功能时,无须更改服务代码。这个解决方案可以提供如下功能:
·为每个服务提供强大的身份用于表示其角色,以实现跨集群和云的互操作性。
·保护服务到服务通信和最终用户到服务通信。
·提供密钥管理系统,以自动执行密钥和证书生成、分发和轮换。
·源身份认证,也称为最终用户身份认证,认证将请求作为最终用户或设备的原始客户端。Istio通过JSON Web Token(JWT)认证和开源OpenID Connect提供商及自定义身份认证,实现了请求级别身份认证和简化的开发人员体验。
在这两种情况下,Istio通过自定义Kubernetes API存储身份认证策略到Istio配置存储(conf ig store)中。Pilot会在适当的时候为每个代理保持最新状态以及密钥。此外,Istio支持在许可模式下进行身份认证,以帮助了解策略更改在生效之前对安全状态的影响。