Skip to content
마지막 작성자: hyejung-song
최근 업데이트: 25. 7. 7. 오후 6:50

메시지 흐름 요약 ​

모바일 신분증 연동 시 발생하는 전체 메시지 흐름을 단계별로 설명합니다.

1. 메세지 흐름 ​

인터페이스별, 단계별 메시지 요약표

2. 메시지 흐름 텍스트 설명 ​

모바일 신분증 시스템은 다양한 인터페이스 방식(QR-MPM, QR-CPM, BLE, NFC 등)에 따라 메시지를 주고받는 흐름이 달라져요. 여기서는 일반적인 메시지 흐름을 단계별로 정리했어요.

1단계: VP 전처리 요청 (M100 계열) ​

신분증 앱이 직접 VP 요청을 할 수 없는 경우(예: QR-CPM, BLE 기반), verifier가 전처리 메시지를 먼저 보냅니다.

  • M100: 전처리 시작
  • M110: QR코드 생성 등 초기 연결 정보 제공

2단계: VP 요청 (M200) ​

verifier가 신분증 앱에 VP 요청 메시지를 보내요. 이때 profile 정보는 두 가지 방식 중 하나로 포함돼요

  • M200 메시지 안에 profile을 포함하는 방식
  • M200은 간단하게 보내고, 신분증 앱이 M310으로 별도로 profile을 요청하는 방식

profile은 검증에 필요한 요구 조건(인증 방식, 필요한 VC 목록 등)을 담고 있어요.

3단계: VP 준비 (M310, M320) ​

신분증 앱은 M200에서 필요한 추가 정보를 받지 못했을 경우, 다음 요청을 보낼 수 있어요:

  • M310: 프로필 요청
  • M320: 사용자 얼굴 이미지(BI) 요청

각 요청은 /mip/profile, /mip/image 경로로 보내며, 서버는 해당 데이터를 base64 인코딩된 응답 메시지로 돌려줘요.

4단계: VP 제출 (M400) ​

신분증 앱은 사용자의 인증을 완료하고, M400 메시지를 만들어 verifier에게 제출해요.

  • vp 객체 안에는 암호화된 VP 데이터(data)가 포함돼요.
  • 제출은 프로필에 정의된 callBackUrl이나 기본 경로(/mip/vp)로 보내요.

5단계: 결과 처리 ​

verifier는 VP를 검증한 결과를 HTTP 200 OK 응답으로 돌려줘요.

  • 성공 시: { "result": true }
  • 실패 시: { "result": false, "data": "base64 인코딩된 오류 메시지" }

예외 처리: 오류 메시지 (M900) ​

오류가 발생한 경우, 다음 방식으로 오류 메시지를 교환해요

  • verifier → 신분증 앱: 오류 메시지를 data 필드에 base64로 인코딩해서 응답
  • 신분증 앱 → verifier: /mip/error 경로로 base64 인코딩된 오류 메시지를 전송

이러한 오류 메시지는 모두 cmd: 900 형태의 M900 메시지로 정의돼요.