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>
C-1 — 다중 앱 SSO 증거
2026-09-04 16:15–16: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-confidential 과 oauth2-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 세션을 죽인 뒤에도 그대로 열리는 화면 |
핵심 세 줄
- SSO 는 user session 1개에 client session N개 구조다 — A-3(전체 소실)과 B-3(client 만 제거)의 차이가 여기서 의미를 갖는다.
- IdP 세션을 죽여도 두 앱은 계속 동작한다. 세 층(IdP·앱·토큰)의 수명이 각자이기 때문이다.
- IdP 는 "로그인 경로"의 단일 장애점이지 "이미 로그인한 사용자"의 단일 장애점이 아니다. 장애는 앱 세션 수명만큼 지연되어 몰려온다.
스크린샷 주의
c1-sso-app2-no-login-screen.png 과 c1-apps-alive-after-idp-logout.png 는
바이트 단위로 동일한 파일이다 (md5 2c703176…). 두 시점의 화면이 실제로
같은 내용이었기 때문이며, 조작이 아니다. 다만 그래서 두 시점을 구별하는
증거가 되지 못한다 — 구별은 03- 과 04- 의 터미널 출력(client_sessions
1→2, 그리고 IdP 세션 삭제 후 Redis 키 잔존)이 한다.