В настоящее время я использую PhpMyAdmin и OAuth2-Proxy в моем кластере Kubernetes. Аутентификация OIDC работает отлично, я подтвердил, что PMA_USERNAME устанавливается должным образом, и меня аутентифицируют мой IDP. Тем не менее, я получаю слишком много ошибок перенаправления, кажется, что я застрял в цикле между/базы данных/и my /database/scripts/signon.php. Как вы можете видеть ниже, я пробовал все, поэтому извините за любые ненужные дополнения. Заранее спасибо!apiVersion: apps/v1
kind: Deployment
metadata:
name: phpmyadmin
labels:
app: phpmyadmin
spec:
replicas: 1
selector:
matchLabels:
app: phpmyadmin
template:
metadata:
labels:
app: phpmyadmin
spec:
containers:
- name: phpmyadmin
# image: phpmyadmin/phpmyadmin:latest
image: phpmyadmin/phpmyadmin:5.2.1
ports:
- containerPort: 80
env:
- name: PMA_HOST
value: ""
- name: PMA_PORT
value: ""
- name: PMA_ABSOLUTE_URI
value: "https:///database/"
- name: PMA_ARBITRARY
value: "0"
lifecycle:
postStart:
exec:
command:
- sh
- -c
- |
set -x # Enable verbose output
# Disable username on login screen
sed -i 's/name="pma_username"/name="pma_username" disabled="disabled"/g' "/var/www/html/templates/login/form.twig"
# Create the directories
mkdir -p /etc/phpmyadmin/conf.d
mkdir -p /var/www/html/scripts
# Create the new config file
cat
EOF
# Change ownership to www-www-data
chown -R www-data:www-data /etc/phpmyadmin/conf.d
chown -R www-data:www-data /var/www/html/scripts
phppmyadmin-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: phpmyadmin-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/auth-url: http://oauth2-proxy.ingress-nginx.svc.c ... auth2/auth
nginx.ingress.kubernetes.io/auth-signin: https:///oauth2/start?rd=https://$host$request_uri
nginx.ingress.kubernetes.io/auth-response-headers: "X-Auth-Request-Email"
spec:
ingressClassName: nginx
tls:
- hosts:
-
secretName:
rules:
- host:
http:
paths:
- path: /database(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: phpmyadmin-service
port:
number: 80
walues.yaml
config:
existingSecret: oauth2-secret # includes client-id, client-secret, and cookie-secret
configFile: |
provider = "oidc"
set_xauthrequest = true
oidc_issuer_url = "https:///oidc/"
email_domains = ["*"]
cookie_secure = true
upstreams = ["http://phpmyadmin.default.svc.cluster.local"]
redirect_url = "https:///oauth2/callback"
#scope = "openid email profile"
scope = "openid"
profile_url = "https:///oidc//userinfo"
user_id_claim = "mail"
pass_access_token = true
pass_authorization_header = true
pass_user_headers = true
set_authorization_header = true
cookie_domains = ""
#cookie_name = "_oauth2_proxy"
cookie_refresh = "2m"
cookie_expire = "24h"
cookie_csrf_per_request= true
cookie_csrf_expire = "5m"
extraArgs:
- --cookie-secure=true
- --cookie-samesite=lax
- --whitelist-domain=
- --skip-provider-button
- --user-id-claim=mail
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
-
path: /oauth2
Подробнее здесь: https://stackoverflow.com/questions/796 ... -between-l