Files
llm-wiki/raw/official-docs/oauth2-proxy-endpoints-signout-official.md

11 KiB

title, source_type, url, archive_url, related_branches, related_projects, tags, created
title source_type url archive_url related_branches related_projects tags created
official-doc / OAuth2 Proxy — Endpoints (Sign Out, {id_token} Redirect, Auth) official-doc https://oauth2-proxy.github.io/oauth2-proxy/features/endpoints/
feature-keycloak-oauth2-proxy-oidc-flow
keycloak-patterns
official-doc
keycloak-patterns
auth
oauth2-proxy
keycloak
oidc
2026-07-17

official-doc / OAuth2 Proxy — Endpoints (Sign Out, {id_token} Redirect, Auth)

Layer: raw/ — 외부 자료(공식 문서 / 대기업 기술 블로그)의 원문 발췌·출처 기록. 본 템플릿은 raw/official-docs/raw/company-tech-blogs/ 두 폴더가 공유. 검증된 요약은 /ingestwiki/concepts/source-summary-template 형식으로 별도 작성. 원본은 raw에 영구 보관.

source_type 허용값

  • official-doc — 공식 레퍼런스 / 표준 / 사양 (oauth2-proxy 공식 GitHub Pages 문서)

Parent / 활용 branch (필수, 최소 1개+)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-keycloak-oauth2-proxy-oidc-flow /oauth2/sign_out 로그아웃 흐름의 기본 동작(로컬 cookie만 삭제) + rd query parameter/{id_token} placeholder 로 IdP 측 sign-out page(= end_session_endpoint)를 트리거하는 메커니즘의 근거 — 현재 branch-note D6 (UNSUPPORTED_DECISION) 해소용

출처 / Source

  • 원본 URL: https://oauth2-proxy.github.io/oauth2-proxy/features/endpoints/
  • 아카이브 URL: (미제공)
  • 저자 / 조직: OAuth2 Proxy project — "a Series of LF Projects, LLC" (문서 하단 저작권 표기)
  • 발행일: 명시 없음 (버전 관리형 문서, 현재 표시 버전 7.15.x)
  • 마지막 확인일: 2026-07-17

왜 저장했는지 / Why archived

branch-note feature-keycloak-oauth2-proxy-oidc-flow D6 (RP-Initiated Logout 채택)가 UNSUPPORTED_DECISION으로 남아 있었음 — 근거 raw에 /oauth2/sign_out 및 로그아웃 관련 메커니즘의 verbatim quote가 없었기 때문. 본 문서(oauth2-proxy 공식 Endpoints 페이지)는 /oauth2/sign_out 의 정확한 동작, rd query parameter, {id_token} placeholder, /oauth2/auth 정의를 담고 있어 이 공백을 메운다.

중요 — 사용자 dispatch 지시와 실제 원문의 불일치: dispatch 지시문은 --backend-logout-url ({id_token} placeholder) 플래그를 전제했으나, 본 문서 원문에는 그런 이름의 CLI flag가 존재하지 않는다 (backend-logout-url, backend_logout_url 문자열 self-grep 결과 0건). 실제로 문서가 기술하는 메커니즘은 rd query parameter (또는 X-Auth-Request-Redirect 헤더) + {id_token} placeholder 조합이다. 아래 Claims/Usage Boundaries에 정정 반영.

핵심 인용 / Key quotes (verbatim, 6문장 — 사용자 dispatch 지시가 5개 논점 + 부재 확인을 명시적으로 요구해 3~5개 기본 범위를 초과)

[§Endpoints] "/oauth2/sign_out - this URL is used to clear the session cookie"

[§Sign out] "This endpoint only removes oauth2-proxy's own cookies, i.e. the user is still logged in with the authentication provider and may automatically re-login when accessing the application again."

[§Sign out] "(The "sign_out_page" should be the end_session_endpoint from the metadata if your OIDC provider supports Session Management and Discovery.)"

[§Sign out] "BEWARE that the domain you want to redirect to (my-oidc-provider.example.com in the example) must be added to the --whitelist-domain configuration option otherwise the redirect will be ignored."

[§Sign out] "ID Token can be injected in the redirect url by using {id_token} placeholder."

[§Endpoints] "/oauth2/auth - only returns a 202 Accepted response or a 401 Unauthorized response; for use with the Nginx auth_request directive"

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
O2PE-C1 /oauth2/sign_out 은 oauth2-proxy 자신의 세션 cookie 만 삭제한다. 사용자는 IdP(예: Keycloak)에는 여전히 로그인된 상태로 남고, 재접근 시 자동 재로그인될 수 있다 [§Endpoints] "/oauth2/sign_out - this URL is used to clear the session cookie" + [§Sign out] "This endpoint only removes oauth2-proxy's own cookies, i.e. the user is still logged in with the authentication provider and may automatically re-login when accessing the application again." official-vendor-doc --backend-logout-url 류 플래그 없이 /oauth2/sign_out 을 단독 호출했을 때의 기본 동작 Keycloak 세션 자체가 종료되는지는 증명하지 않음 (IdP 세션 종료는 별도 리다이렉트 필요 — O2PE-C2 참조)
O2PE-C2 IdP 측 로그아웃까지 트리거하려면 rd query parameter (또는 X-Auth-Request-Redirect 헤더)로 IdP의 sign-out 페이지를 지정해야 하며, 그 페이지는 OIDC provider가 Session Management/Discovery 를 지원하면 end_session_endpoint 이어야 한다 [§Sign out] "(The "sign_out_page" should be the end_session_endpoint from the metadata if your OIDC provider supports Session Management and Discovery.)" official-vendor-doc Keycloak end_session_endpointrd 대상으로 사용하는 결정의 근거 oauth2-proxy 가 대상 URL이 실제 end_session_endpoint 인지 검증한다는 뜻은 아님 — 사용자가 올바른 값을 넣어야 하는 convention 일 뿐
O2PE-C3 ID Token 은 {id_token} placeholder 로 리다이렉트 URL에 주입할 수 있으며, rd query parameter 와 X-Auth-Request-Redirect 헤더 양쪽 방식 모두에서 동작한다 [§Sign out] "ID Token can be injected in the redirect url by using {id_token} placeholder." official-vendor-doc Keycloak end_session_endpointid_token_hint 파라미터를 채우는 메커니즘 --backend-logout-url 이라는 이름의 별도 CLI flag 는 이 문서에 존재하지 않는다 — dispatch 지시의 전제와 다름. 메커니즘은 flag 가 아니라 rd/헤더 값 문자열 치환임
O2PE-C4 rd 리다이렉트 대상 도메인이 --whitelist-domain 에 등록되어 있지 않으면 리다이렉트가 무시된다 [§Sign out] "BEWARE that the domain you want to redirect to (my-oidc-provider.example.com in the example) must be added to the --whitelist-domain configuration option otherwise the redirect will be ignored." official-vendor-doc sign-out 흐름에서 open-redirect 방지 설정 필요성 무시될 때 오류 응답 코드/사용자 노출 메시지가 무엇인지는 본 인용에 명시 없음
O2PE-C5 /oauth2/auth 엔드포인트는 202 Accepted 또는 401 Unauthorized 만 반환하며, nginx auth_request directive 용으로 설계되었다 [§Endpoints] "/oauth2/auth - only returns a 202 Accepted response or a 401 Unauthorized response; for use with the Nginx auth_request directive" official-vendor-doc nginx auth_request 모드에서 oauth2-proxy 를 인증 서브리퀘스트 대상으로 쓰는 결정 (형제 branch feature-keycloak-nginx-auth-request-integration 교차 인용 가능) 이 엔드포인트가 응답에 X-Auth-Request-* 헤더를 주입하는지는 본 페이지에 명시 없음 (해당 내용은 raw/official-docs/oauth2-proxy-overview-config-official 의 별도 claim)

Strength 허용값

  • official-vendor-doc — 위 5개 claim 모두 oauth2-proxy 공식 GitHub Pages 문서 원문에서 직접 발췌

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • O2PE-C1: /oauth2/sign_out 은 oauth2-proxy 자체 cookie 만 지우고 IdP 세션은 그대로 둔다는 기본 동작
    • O2PE-C2~O2PE-C3: IdP 로그아웃까지 트리거하려면 rd/헤더 + {id_token} placeholder 조합이 필요하다는 메커니즘
    • O2PE-C4: --whitelist-domain 미등록 시 rd 리다이렉트가 무시된다는 안전장치
    • O2PE-C5: /oauth2/auth 가 nginx auth_request 용으로 202/401만 반환한다는 계약
  • 이 자료가 증명하지 않는 것:
    • --backend-logout-url 이라는 이름의 CLI flag 존재 여부 — 본 문서 원문에서 backend-logout-url/backend_logout_url 문자열이 self-grep 0건으로 확인됨. 이런 이름의 flag 를 전제로 한 branch-note 서술이 있다면 정정 필요
    • back-channel logout 수신 엔드포인트(Keycloak 이 Logout Token 을 이 프록시로 POST 하는 대상)의 존재 여부 — 이 문서 범위에서 확인되지 않음. backchannel, back-channel, logout token 문자열이 본 페이지 원문에 전혀 등장하지 않는다 (self-grep 0건). 즉 본 페이지만으로는 oauth2-proxy 가 OIDC Back-Channel Logout 1.0 spec 의 RP 수신자 역할을 지원한다고도, 지원하지 않는다고도 확정할 수 없다 — 이 페이지가 그 주제를 다루지 않을 뿐이다 (커뮤니티 이슈 트래커의 미지원 시사는 공식 근거 아님, 별도 확인 필요)
    • Keycloak 세션이 rd 리다이렉트 이후 실제로 종료되는지의 런타임 검증 (이 문서는 메커니즘만 서술, 실제 동작 확인은 branch-note Claims To Verify 표의 실측 항목)
    • id_token_hint/post_logout_redirect_uri 라는 파라미터 이름이 이 문서에서 명시적으로 "OIDC RP-Initiated Logout 1.0 spec 용어"라고 이름 붙여지지는 않는다 — 예시 URL에 그 이름의 쿼리 파라미터가 등장할 뿐 (spec 명칭 매칭은 이 문서 밖의 배경지식)
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • 본 branch(feature-keycloak-oauth2-proxy-oidc-flow)는 P1A(단일 EC2, Keycloak 26.x, Google federation 없음) 학습 노트이며 documented-only 등급이다. 이 raw 자료는 oauth2-proxy 공식 문서의 verbatim 발췌일 뿐, 내 프로젝트에서 실제로 구성·시연했다는 근거가 아니다 — actually-implemented/locally-verified로 승격 금지
    • Keycloak 26.x 에서 end_session_endpoint 가 discovery 메타데이터에 실제로 어떤 경로로 노출되는지는 별도 Keycloak 공식 문서 확인 필요

메모 / Notes

나중에 wiki로 옮길 때 참고할 짧은 메모. 검증되지 않은 내 추론은 여기에 두지 말 것.

  • id_token_hint + post_logout_redirect_uri + end_session_endpoint 조합은 OpenID Connect RP-Initiated Logout 1.0 spec 의 표준 파라미터 이름과 일치하는 것으로 보이나, 이는 본 문서 밖 배경지식에 의한 패턴 매칭이며 본 문서가 그렇게 명명하지는 않음 (미검증 추론 — wiki 승격 시 OIDC RP-Initiated Logout 공식 spec 페이지로 별도 근거 보강 필요)
  • branch-note D6 (UNSUPPORTED_DECISION)는 본 raw 로 O2PE-C1~O2PE-C4 근거를 확보했으나, back-channel logout 수신자 여부는 여전히 미확인 — D6 갱신은 branch-note 작성자 몫 (본 agent 는 raw 등록 + Sources 표 갱신까지만 수행)