Запуск веб-приложения с докерской флягой в GKE с включенным IAP приводит к проблеме с запросом.Код ошибки 9 - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть приложение для закрепления в фляге, которое работает на kuberneetes в Google Cloud Platform с включенным Identity-Aware Proxy.Я могу запустить веб-сайт «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

EDIT

Дальнейшие исследования показывают

ImportError: Error loading shared library libssl.so.45: No such file or directory (needed by /usr/local/lib/python3.6/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so)

при выполнении следующих

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