Files
keycloak-pattern/docs/evidence/c1-multi-app-sso
DongHyeonkaandClaude Opus 5 e0d27d47ce docs: correct the places where documents contradicted their own evidence
An independent audit found ten documents printing values their evidence files do not contain. C-1 printed a session count of 0 where the evidence says 4, C-2 printed a success readback for a command that exited 1, and A-1 credited the conntrack flush with a split that the timestamps attribute to a pod restart four seconds earlier.

Also measured wal_writer_delay, which A-3 had asserted as matching without ever querying it, relabelled the A-6 control that moved 41 percent, noted A-8's nine-sample resolution, corrected D-1's RTO to the 41 seconds its own timeline shows, and added a correction banner to D-2. Every experiment document now links its evidence files with their real collection times, and the duplicate screenshots are documented as duplicates.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 16:35:49 +09:00
..

C-1 — 다중 앱 SSO 증거

2026-09-04 16:1516:30 KST 해설: docs/experiment-c1-multi-app-sso.md

파일 무엇을 보여주는가
01-baseline.txt 초기화 시도 — logout-all 이 안 먹어 세션 4개가 남았다
02-after-app1-login.txt app1 로그인 후 — user session 1 · client session 1 · Redis 1 · DB 1행
03-after-app2-visit.txt app2 방문 후 client session 1 → 2, bff-confidentialoauth2-proxy 가 같은 user session 에 붙음. Redis 에 두 종류 세션
04-sso-session-killed.txt IdP 세션 삭제 후 — 앱 세션 셋 다 남아 있다. realm 을 join 해 보고서야 남은 것이 master 세션임을 확인
c1-sso-app2-no-login-screen.png app2 가 로그인 화면 없이 열린 화면
c1-apps-alive-after-idp-logout.png IdP 세션을 죽인 뒤에도 그대로 열리는 화면

핵심 세 줄

  1. SSO 는 user session 1개에 client session N개 구조다 — A-3(전체 소실)과 B-3(client 만 제거)의 차이가 여기서 의미를 갖는다.
  2. IdP 세션을 죽여도 두 앱은 계속 동작한다. 세 층(IdP·앱·토큰)의 수명이 각자이기 때문이다.
  3. IdP 는 "로그인 경로"의 단일 장애점이지 "이미 로그인한 사용자"의 단일 장애점이 아니다. 장애는 앱 세션 수명만큼 지연되어 몰려온다.

스크린샷 주의

c1-sso-app2-no-login-screen.pngc1-apps-alive-after-idp-logout.png바이트 단위로 동일한 파일이다 (md5 2c703176…). 두 시점의 화면이 실제로 같은 내용이었기 때문이며, 조작이 아니다. 다만 그래서 두 시점을 구별하는 증거가 되지 못한다 — 구별은 03-04- 의 터미널 출력(client_sessions 1→2, 그리고 IdP 세션 삭제 후 Redis 키 잔존)이 한다.