집사회(deacon:9772) 크라우니 통합 IdP 연동
개요
메일 정본 IdP 스펙(§4-1, 오프라인검증 방식A)을 집사회에 이식. 기존 서비스간 통신용
X-Deacon-Key 경로는 그대로 유지하고,
Authorization: Bearer <통합토큰>이 오면
사람 신원(id)을 식별하는 분기를 추가 — 지금까지 전부 익명이던 미션/티켓 작업에
"누가 했는지" 추적 가능해짐.
무엇을 했는지
/Users/ef/crowny-deacon/서버.한선에 DC_IdP* 함수군 추가(참조구현
/Users/ef/crowny-services/클라우드관리.한선 CM_IdP
와 동형): 시크릿 부팅1회캐시,
id 화이트리스트, sig 계산, 세션버전 조회, 토큰 검증.
_인증확인이중(소켓,요청): X-Deacon-Key 우선(성공 시 "서비스" 반환) → 없거나
무효면 Bearer 통합토큰 검증(성공 시 id 반환) → 둘 다 실패면 403.
- 미션 생성(
POST /api/council/mission): 기존 스키마의 발행자 필드(미션생성 3번째
인자, 원래 하드코딩 "api")에 실제 신원을 채움 — 스키마 변경 없음, 기존 필드
의미를 실질화했을 뿐.
- 클레임(
/api/council/claim)·보고(/api/council/report): 티켓.psv에는 사람-id 필드가
없음(모델/처리자=AI 모델명 용도로 이미 사용 중, 스키마 변경은 금지 지시됨) → 신규
append-only 사이드 감사로그 /Users/ef/crowny-deacon/data/IdP감사.psv
(시각|경로|티켓ID|id)에 IdP 경유(사람) 호출만 기록. X-Deacon-Key(서비스) 경로는
로그하지 않음(신원="서비스"는 필터링).관련 파일
/Users/ef/crowny-deacon/서버.한선 (수정) — 백업 서버.한선.bak-IdP연동-20260730
/Users/ef/crowny-deacon/data/IdP감사.psv (신규, append-only)
- 참조:
/Users/ef/crowny-services/클라우드관리.한선 CM_IdP
,
/Users/ef/crowny-mail/docs/크라우니-통합인증-IdP스펙.md
검증 (실측)
- STRICT 컴파일 0경고(
CROWNY_STRICT=1 hanseonc_high — 경고 라인 없음)
배포.sh 표준 배포 — kickstart 후 재기동스모크 [티/정상], 장부검증 회귀 12/12
mail:9610 /api/auth/login(kps/kps1234) → idpToken 발급 확인
- Bearer만으로(무 X-Deacon-Key)
/api/council/mission 200, 생성된 미션 발행자="kps" 확인
- 위조 sig 토큰 → 403
- 무토큰 → 403
- 회귀: 기존
X-Deacon-Key 경로 /api/council/mission 200(변함없음)
- claim/report도 Bearer로 정상 동작 +
IdP감사.psv에 claim|T130|kps, report|T130|kps 기록 확인.
같은 티켓을 X-Deacon-Key로 claim한 건은 로그에 미기록(신원="서비스" 필터 정상)
잔여 이슈
- 집사회 서버는 단일 커넥션 순차 처리(동시요청 시 뒷 요청이 커넥션 큐잉으로 일시
타임아웃 관찰 — 이번 변경과 무관한 기존 구조적 특성, 별개 이슈로 남김).
- 티켓 단위 사람-id는 사이드 로그(IdP감사.psv)로만 추적됨 — 티켓.psv 본 스키마에
전용 필드를 넣으려면 스키마 변경이 필요하므로 지시에 따라 보류(보고 사항).