У меня есть приложение для закрепления в фляге, которое работает на 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)