使用 Istio 进行 JWT 身份验证与来源限流
Istio End User Authentication Istio 支持使用 JWT 对终端用户进行身份验证,支持多种 JWT 签名算法,主流的有 RS256/ES256。(也许也会有人用 HS256 做分布式 JWT 认证。。不过这显然是非常危险的) JWK 说明 JWK 全称是 Json Web Key,它描述了一个加密密钥(公钥或私钥)的各项属性,包括密钥的值。 Istio 使用它进行 JWT 验证,因此在使用 RSA 签名算法时,JWK 里提供的应该是用于验证的公钥。 一个 RSA 公钥的数据结构如下: { "alg": "RS256", # 算法「可选参数」 "kty": "RSA", # 密钥类型 "use": "sig", # 被用于签名「可选参数」 "kid": "NjVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg", # key id,在有多个 jwk 时(如 jwks 中)被用于区分各 jwk "n": "yeNlzlub94YgerT030codqEztjfU_S6X4DbDA_iVKkjAWtYfPHDzz_sPCT1Axz6isZdf3lHpq_gYX4Sz-cbe4rjmigxUxr