- Mail: - Troubleshooting
Troubleshoot-logboek — SSO / nginx / oauth2-proxy / Keycloak
Dit document groepeert de commando’s die tijdens het debuggen zijn gebruikt per categorie. Doel: snel reproduceren, analyseren en later automatiseren in runbooks of scripts.
1. systemd / Service-gedrag analyseren
Service status controleren
systemctl status oauth2-proxy
systemctl status keycloak
systemctl status nginx
Live logs volgen (meest gebruikt!)
journalctl -u oauth2-proxy -f
journalctl -u keycloak -f
journalctl -u nginx -f
Logs sinds laatste start
journalctl -u oauth2-proxy -b
Unitfile opnieuw inlezen na wijziging
sudo systemctl daemon-reload
Service herstarten
sudo systemctl restart oauth2-proxy
Controleren welke ExecStart actief is
systemctl cat oauth2-proxy
2. Handmatig starten om fouten zichtbaar te maken
Zeer belangrijk bij config-problemen.
sudo oauth2-proxy \
--alpha-config=/etc/oauth2-proxy-log.d/oauth2-proxy-log.alpha.yaml \
--email-domain=* \
--cookie-secret="..."
👉 Hiermee zie je fouten direct op stdout i.p.v. via systemd.
3. Configuratiebestanden inspecteren
Environment file controleren
sudo cat /etc/oauth2-proxy/oauth2-proxy.env
YAML config bekijken
sudo less /etc/oauth2-proxy-log.d/oauth2-proxy-log.alpha.yaml
Rechten controleren (vaak oorzaak!)
ls -l /etc/oauth2-proxy*
4. Controleren of poorten echt luisteren
Welke service luistert?
sudo ss -tlnp | grep 4180
sudo ss -tlnp | grep 8081
Alternatief
sudo lsof -i :4180
5. HTTP-flow testen zonder browser
Basis test via nginx
curl -I https://dev.public-risk.org/
oauth2 auth_request simuleren
curl -v http://127.0.0.1:4180/oauth2/auth
Callback testen
curl -vk https://dev.public-risk.org/oauth2/callback
6. Cookies en sessiegedrag analyseren
Met cookie-jar testen
curl -c cookies.txt -b cookies.txt -v https://dev.public-risk.org/
Headers inspecteren (belangrijk!)
curl -v https://dev.public-risk.org/ 2>&1 | grep -i auth
7. nginx configuratie debuggen
Config syntax check
sudo nginx -t
Actieve config dumpen
sudo nginx -T
Reload zonder downtime
sudo systemctl reload nginx
auth_request headers controleren
curl -I https://dev.public-risk.org/ | grep X-Auth
8. Keycloak connectiviteit controleren
Bereikbaarheid lokaal testen
curl -I http://127.0.0.1:8081/keycloak/
Via reverse proxy testen
curl -I https://dev.public-risk.org/keycloak/
Issuer endpoint controleren (MOET werken!)
curl https://dev.public-risk.org/keycloak/realms/master/.well-known/openid-configuration
9. Netwerk / DNS / TLS uitsluiten
DNS check
dig dev.public-risk.org
TLS handshake controleren
openssl s_client -connect dev.public-risk.org:443
Timeouts onderscheiden van auth-problemen
curl -w "@curl-format.txt" -o /dev/null -s https://dev.public-risk.org
10. Debuggen van 403 / login loops
Controleren of email claim aanwezig is
Key foutmelding die we zagen:
neither the id_token nor the profileURL set an email
Dus controleren in Keycloak:
- client scope →
email - mapper →
email - claim aanwezig in token
11. Snelle sanity-checks die vaak helpen
date
timedatectl
hostname -f
(Tijdverschil breekt OIDC!)
12. Tijdelijk servicegedrag uitschakelen (development)
In plaats van ExecStart verwijderen:
ExecStart=/usr/bin/true
of runtime override:
systemctl edit oauth2-proxy
Conclusie
De meeste problemen zaten niet in:
- netwerk
- nginx
- TLS
maar in:
- oauth2-proxy configuratiebron (.env vs YAML)
- ontbrekende claims uit Keycloak
- systemd interpretatie van unitfiles
Aanbevolen volgende stap
Dit document kan dienen als basis voor:
/usr/local/sbin/sso-diagnose.sh- een CI health-check
- jouw runbook in
docs/infrastructure/