795 B
795 B
Reverse proxy headers
TLS를 reverse proxy에서 종료하면 Keycloak은 브라우저가 사용한 외부 origin을 정확히 알아야 한다. 배포 예제는 다음 계약을 함께 적용한다.
- nginx는
Host,X-Forwarded-Host,X-Forwarded-Port,X-Forwarded-Proto,X-Forwarded-For를 덮어쓴다. - Keycloak은
KC_PROXY_HEADERS=xforwarded로 그 헤더 형식을 명시한다. KC_HOSTNAME은 외부 HTTPS URL로 고정하고 strict hostname 검증을 켠다.- Keycloak의 8080 포트는 public으로 publish하지 않고 proxy network에서만 접근시킨다. 신뢰되지 않은 클라이언트가 forwarded header를 직접 넣을 수 있으면 안 된다.
scripts/verify-reverse-proxy-headers.sh는 양쪽 설정의 짝과 nginx 구문을
검증한다.