我有一个带GLCB的GKE后端(使用Ingress GCP,根据到各种bakend服务的路径进行路由(。我需要验证头中的令牌,并将请求传递给后端,如果它是有效的令牌。为了检查令牌的有效性,我需要将其传递给firebase。一旦firebase说可以,然后路由到正确的后端。
我最初使用的是ingress GCE,但这似乎只能通过使用Istio来实现。有人能建议如何进行基于istio的最终用户身份验证吗?
您可以使用AuthorizationPolicy和RequestAuthentication来执行此操作。istio文档中有这样的例子。
Istio在RequestAuthentication中做什么?
如上所述
RequestAuthentication定义了工作负载支持的请求身份验证方法。如果请求包含无效的身份验证信息,则根据配置的身份验证规则,If将拒绝该请求。不包含任何身份验证凭据的请求将被接受,但不会具有任何经过身份验证的身份。要限制仅访问经过身份验证的请求,应附带授权规则。
如上所述
发行人->标识发布JWT的发行人。请参见发行人。具有不同iss索赔的JWT将被拒绝。
示例:https://foobar.auth0.com示例:1234567-compute@developer.gserviceaccount.com
jwksUri->用于验证JWT签名的提供程序公钥集的URL。请参阅OpenID发现。
示例:https://www.googleapis.com/oauth2/v1/certs
有两个用于firebase的jwtRules和jwskUri示例。
- https://github.com/envoyproxy/envoy/issues/5702
- https://discuss.istio.io/t/istio-authentication-with-firebase/468/6
其他资源:
- https://cloud.google.com/solutions/authenticating-cloud-run-on-gke-end-users-using-istio-and-identity-platform