Google Identity Aware Proxy для двух разных бэкэнд-сервисов, использующих один и тот же домен
У меня есть сценарий использования, где мне нужно объединить два разных сервиса, используя вход разветвления (другой путь). Я решил сделать это, потому что обе службы на самом деле связаны, поэтому я не хочу отделять домен. Другая причина в том, что я не хочу использовать другой вход. Однако эта проблема возникает, я понимаю, что после активации Google IAP будут созданы новые clientId и secretId. И URL перенаправления javascript должен быть доменом (без указания пути или в форме подстановки).
Я пытаюсь получить доступ к https://{my-domain}/ {some-path}. Оказывается, я получил следующую ошибку.
- Это ошибка.
Ошибка: redirect_uri_mismatch
URI перенаправления в запросе, https://{my-domain}/ _gcp_gatekeeper / authenticate, не соответствует тем, которые авторизованы для клиента OAuth. Чтобы обновить авторизованные URI перенаправления, посетите страницу https://console.developers.google.com/apis/credentials/oauthclient/
Это мой входной конфиг:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: <some-static-ip>
name: <name>
namespace: <namespace>
spec:
backend:
serviceName: <service-1>
servicePort: <port-of-service-1>
rules:
- http:
paths:
- backend:
serviceName: <service-2>
servicePort: <port-of-service-2>
path: /<some-path>/*
tls:
- secretName: <secret-name>
Однако, когда я попытался получить доступ к своему первому сервису, он просто отлично работал и работал как ожидалось.
Просто интересно, возможно ли создать IAP для двух разных сервисов, использующих один и тот же вход? Я не могу найти больше об этом, хотя. Спасибо!
Лучший,
1 ответ
После того, как я прочитал это:
- https://cloud.google.com/iap/docs/reference/compute-engine-apis
- https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig
- https://cloud.google.com/iap/docs/enabling-kubernetes-howto
Я понимаю, что мне просто нужно включить IAP для моей второй службы, а затем переопределить значение clientId и secretId моей второй службы на значение, предоставленное конфигурацией IAP для моей первой службы. Перейдите к вашей консоли IAP:
kubectl create secret generic backend-config-secret --namespace {namespace} \
--from-literal=client_id=client_id_key \
--from-literal=client_secret=client_secret_key
Создайте свой BackendConfig:
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
name: {name}
namespace: {namespace}
spec:
iap:
enabled: true
oauthclientCredentials:
secretName: backend-config-secret
Добавьте это к вашим услугам:
beta.cloud.google.com/backend-config: '{"default": "{name}"}'