Nangman Infra
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) 정상 로그인 및 기존 데이터 조회 확인

OIDC Subject 변경 통제 정책

적용 범위: auth.nangman.cloud 연동 OIDC Provider 전체

  • - OIDC 식별자 정책 고정: sub_mode=user_email 유지
  • - Provider 삭제/재생성 작업 시 사전 영향도 점검 필수(서비스 DB sub 보정 계획 포함)

종료 조건: OIDC Provider 변경 작업은 사전 영향도 점검 문서와 보정 계획 승인 없이는 수행하지 않음

태그

#incident#auth#oidc#subject#sub-mode#identity-consistency