INC-20260304-AUTH-002SEV-2해결됨
OIDC Subject 식별자 불일치로 인한 연동 서비스 데이터 조회 장애
인증 자체는 성공했지만 일부 사용자에서 기존 개인 데이터 조회가 실패했습니다. Authentik 감사 로그 분석 결과 장애 인지 시점(09:00~11:00 KST)에는 Provider 쓰기 이벤트가 없었고, 과거 Provider 삭제/재생성 이력으로 인한 Subject 식별자 드리프트가 원인으로 확인되었습니다.
2026-03-04 09:00 KST
2026-03-04 18:00 KST
auth.nangman.cloud 연동 서비스 (Meet, Mail, Note, Harbor)
기술 임팩트
OIDC 토큰 발급은 정상(로그인 성공)이나 서비스 DB가 보유한 기존 owner_sub/oidc_sub와 신규 sub가 불일치하여 기존 데이터 조회가 실패했습니다.
서비스 토폴로지
- - Client -> auth.nangman.cloud (OIDC Authorization Code Flow)
- - Authentik Provider -> ID Token/JWT sub claim 발급
- - Meet/Mail/Note/Harbor -> sub 기반 사용자/리소스 매핑
- - Service DB -> owner_sub/oidc_sub 기준 데이터 조회
근본 원인
과거 hash(user_pk + provider_pk) 기반 Subject 체계에서 Provider 삭제/재생성 이력이 누적되며 동일 사용자의 sub가 변동되었습니다. 그 결과 서비스 DB의 기존 식별자와 신규 토큰 식별자가 불일치했습니다.
기여 요인
- - 2026-03-02 Provider 삭제(all/11) 및 재구성(oauth2/13) 이력 존재
- - 2026-03-04 다수 Provider(oauth2/13,8,10,1,15) 설정 갱신
- - 서비스 DB가 sub를 영속 식별자로 사용하여 변경 영향이 직접 전파
- - 장애 인지 시점과 실제 설정 변경 시점이 달라 초기 원인 파악이 지연
근거 자료
- - 2026-03-04 09:00~11:00 KST 구간 감사 이벤트 3건: 모두 로그인/인가 흐름, Provider 쓰기 이벤트 없음
- - Provider 쓰기 이력: DELETE /api/v3/providers/all/11/ (2026-03-02 14:12:17 KST)
- - Provider 쓰기 이력: PUT /api/v3/providers/oauth2/13/ (2026-03-02 14:17:40 KST 이후 다수)
- - Provider 쓰기 이력: PUT /api/v3/providers/oauth2/13,8,10,1 (2026-03-04 12:51~12:52 KST)
- - 현재 OIDC 앱(provider 1/8/10/13/15) sub_mode=user_email 통일 확인
타임라인
- - 2026-03-02 14:12:17 | TransNote OIDC Provider 삭제 (DELETE /api/v3/providers/all/11/)
- - 2026-03-02 14:17:40 | TransNote OIDC Provider 재구성 시작 (PUT /api/v3/providers/oauth2/13/)
- - 2026-03-04 09:00 | 로그인 후 기존 데이터 조회 실패 증상 접수
- - 2026-03-04 12:51~12:52 | Harbor/Mail/Meet/Note 관련 Provider 설정 갱신 (PUT /api/v3/providers/oauth2/13,8,10,1)
- - 2026-03-04 17:17:01 | Jenkins Provider 설정 갱신 (PUT /api/v3/providers/oauth2/15)
- - 2026-03-04 18:00 | email 기반 sub 통일 및 서비스 정합성 확인 완료
해결 조치
- - Authentik 감사 이벤트(events_event) 기반 시계열 분석으로 변경 시점과 장애 인지 시점 분리 확인
- - OIDC 앱(provider 1/8/10/13/15) sub_mode를 user_email 기준으로 통일
- - 서비스별 sub 정합성 점검 및 영향 데이터 보정 완료
- - 영향 서비스(Meet, Mail, Note, Harbor) 정상 로그인 및 기존 데이터 조회 확인
적용 범위: auth.nangman.cloud 연동 OIDC Provider 전체
- - OIDC 식별자 정책 고정: sub_mode=user_email 유지
- - Provider 삭제/재생성 작업 시 사전 영향도 점검 필수(서비스 DB sub 보정 계획 포함)
종료 조건: OIDC Provider 변경 작업은 사전 영향도 점검 문서와 보정 계획 승인 없이는 수행하지 않음
#incident#auth#oidc#subject#sub-mode#identity-consistency