Google cloud platform 具有标识感知代理的GKE返回错误代码9

Google cloud platform 具有标识感知代理的GKE返回错误代码9,google-cloud-platform,google-kubernetes-engine,Google Cloud Platform,Google Kubernetes Engine,我有一个停靠的flask应用程序,它运行在Google云平台的kuberneetes上,启用了身份识别代理。我可以运行一个“Hello World”网站,但当我尝试使用签名的JWT头时,就会出现问题 在我的浏览器中,我看到 There was a problem with your request. Error code 9 我的应用程序是这样的,我使用gunicorn运行应用程序。看来麻烦发生在第一行 jwt = request.headers.get('x-goog-iap-jwt-ass

我有一个停靠的flask应用程序,它运行在Google云平台的kuberneetes上,启用了身份识别代理。我可以运行一个“Hello World”网站,但当我尝试使用签名的JWT头时,就会出现问题

在我的浏览器中,我看到

There was a problem with your request. Error code 9
我的应用程序是这样的,我使用
gunicorn
运行应用程序。看来麻烦发生在第一行

jwt = request.headers.get('x-goog-iap-jwt-assertion')
但这对我来说毫无意义。但我可以在该行之前返回字符串,但不能在该行之后返回。有什么建议吗

有关当前kubernetes群集的详细信息

apiVersion: apps/v1
kind: Deployment
metadata:
  name: internal-tools-app
spec:
  selector:
    matchLabels:
      app: internal-tools
  template:
    metadata:
      labels:
        app: internal-tools
    spec:
      containers:
      - name: internal-web-app
        image: <<MY_IMAGE>>
---
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: internal-tools-backend-config
  namespace: default
spec:
  iap:
    enabled: true
    oauthclientCredentials:
      secretName: internal-tools-oauth
---
apiVersion: v1
kind: Service
metadata:
  name: internal-tools-service
  annotations:
    beta.cloud.google.com/backend-config: '{"default": "internal-tools-backend-config"}'
spec:
  type: NodePort
  selector:
    app: internal-tools
  ports:
  - name: it-first-port
    protocol: TCP
    port: 8080
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.global-static-ip-name: internal-tools-ip
    ingress.gcp.kubernetes.io/pre-shared-cert: "letsencrypt-internal-tools"
  name: internal-tools-ingress
spec:
  rules:
  - host: <<MY_DOMAIN>>
    http:
      paths:
      - backend:
          serviceName: internal-tools-service
          servicePort: it-first-port
运行以下命令时

jwt.decode(
    iap_jwt, key,
    algorithms=['ES256'],
    audience=expected_audience)

今晚我刚刚通过在GCP控制台中删除并重新创建我的前端和google管理的cert对象修复了这个错误代码。当我停用并重新调整集群的用途,并将我的应用程序部署在具有相同静态IP地址的全新集群上时,似乎会发生这种情况。

我今晚刚刚通过在GCP控制台中删除并重新创建我的前端和谷歌管理的证书对象修复了此错误代码。这似乎发生在我退役并重新调整集群用途,并将我的应用程序部署在一个具有相同静态IP地址的全新集群上时。

我从谷歌云团队bug追踪器得到了这个答案:

当同时发生多个重新身份验证请求时(尤其是浏览器一次重新加载多个窗口/选项卡时),会出现错误代码9。此流当前要求临时cookie流首先成功,并且此cookie对于该流是唯一的。但是,如果一个流在前一个流完成之前启动,例如在同一浏览器中同时进行多次刷新,这将导致您看到的错误,并导致用户面对该验证页面

您可以尝试以下选项来解决此问题

  • 重新启动1浏览器
  • 清除饼干
  • 更好地处理会话
⁠会话处理程序


我从谷歌云团队bug追踪器那里得到了这个答案:

当同时发生多个重新身份验证请求时(尤其是浏览器一次重新加载多个窗口/选项卡时),会出现错误代码9。此流当前要求临时cookie流首先成功,并且此cookie对于该流是唯一的。但是,如果一个流在前一个流完成之前启动,例如在同一浏览器中同时进行多次刷新,这将导致您看到的错误,并导致用户面对该验证页面

您可以尝试以下选项来解决此问题

  • 重新启动1浏览器
  • 清除饼干
  • 更好地处理会话
⁠会话处理程序


此处提交的谷歌漏洞票据:此处提交的谷歌漏洞票据:
jwt.decode(
    iap_jwt, key,
    algorithms=['ES256'],
    audience=expected_audience)