Убедитесь, что при настройке прокси-сервера oauth2 вы задали свой домен cook ie (установите --cookie-domain=example.com
, чтобы разрешить чтение повара ie).
Вы также должны добавить whitelist-domain
функция при настройке прокси-сервера oauth2:
--whitelist-domain=example.com
Затем необходимо создать входные объекты:
1. Открыть конечную точку /oauth2
, посмотрите на пример ниже:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: oauth2-proxy
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: oauth2-proxy
servicePort: 4180
path: /oauth2
tls:
- hosts:
- example.com
secretName: example-com-tls
2. Затем создайте вход для своего приложения:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-com-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
tls:
- hosts:
- example.com
secretName: example-com-tls
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: example-com-nginx-service
servicePort: 80
Очевидно, что можно создать два отдельных входа, но вы также можете создать только один с двумя определены бэкэнды, как вы хотели.
Взгляните сюда: nginx -ingress-controller-oauth2 , oauth2-dynamici c -callbacks , oauth2-proxy .
Еще раз убедитесь, что вы выполнили следующую инструкцию: external-OAUTH-аутентификация .