디지털 사용자 인증 정보 개요

디지털 사용자 인증 정보는 암호화 방식으로 확인할 수 있는 문서이며 사용자를 인증, 승인 또는 기타 방식으로 사용자 정보를 제공하는 데 사용할 수 있습니다. 이러한 ID는 일반적으로 모바일 운전면허증, 디지털 여권, 탑승권과 같은 항목입니다. 이러한 ID는 디지털 지갑이라는 가상 컨테이너에 있으며 액세스하고 검색하는 방법을 지정하는 W3C 표준의 일부입니다. 이 표준은 웹 사용 사례의 경우 W3C 인증 관리 API를 사용하고 Android에서는 인증 관리자의 DigitalCredential API를 사용하여 구현됩니다.

디지털 사용자 인증 정보 이해하기

실제 세계에서는 사용자가 지갑에 신원을 보관하고 요청이 있을 때 요청자에게 신원을 제시할 수 있습니다.

일반 월렛 상호작용 흐름을 보여주는 이미지
그림 1. 실제 사용자 인증 정보 요청을 처리하는 프로세스입니다. 요청자가 사용자에게 특정 사용자 인증 정보를 요청합니다. 그런 다음 사용자는 실제 지갑에서 카드를 선택하여 가져옵니다. 마지막으로 사용자는 요청자에게 사용자 인증 정보를 제공합니다.

이 경우 사용자는 일반적으로 하나의 지갑을 보유하고 있으며 요청자에게 표시하기 위해 지갑에서 요청된 사용자 인증 정보를 가져옵니다. 지갑은 대부분 호환되며 일반적으로 동일한 항목을 저장할 수 있습니다.

디지털 인증서의 주요 차이점은 다음과 같습니다.

  1. 사용자는 다양한 사용자 인증 정보를 포함할 수 있는 여러 지갑을 보유하고 있을 것으로 예상됩니다. 지갑은 지갑 내에 저장할 수 있는 사용자 인증 정보를 결정합니다.
  2. 이제 요청자는 실제 사람이 아닌 애플리케이션이며 인증자로 불립니다.
  3. 사용자 인증 정보 프레젠테이션은 소프트웨어에서 이루어집니다. 즉, API 노출 영역이 사용자 인증 정보를 가져와 표시합니다. Android에서는 Credential Manager가 이 역할을 합니다.

따라서 인증 관리자는 이전에 사용자가 처리했던 여러 역할을 수행합니다.

  1. Android에서 월렛이 인증 관리자 UI에 표시되려면 인증 관리자에 사용자 인증 정보 메타데이터를 등록해야 합니다.
  2. 인증 관리자는 요청에 따라 지갑에서 사용자의 인증 정보를 일치시키고 사용자가 선택할 수 있는 목록을 표시합니다.
  3. 사용자가 목록에서 사용자 인증 정보를 선택하면 인증 관리자가 지갑을 호출하고 지갑은 나머지 거래(UI 표시 등)를 처리하고 사용자 인증 정보를 애플리케이션에 반환합니다.

이 흐름은 다음과 같습니다.

디지털 인증 정보 상호작용의 흐름을 보여주는 이미지
그림 2. 디지털 사용자 인증 정보 확인을 위한 상호작용 모델입니다. 인증 관리자는 사용자 지갑에서 사전 등록된 사용자 인증 정보 메타데이터를 사용하여 확인자의 요청과 일치시키고 사용자에게 사용자 인증 정보를 선택하라는 메시지를 표시합니다. 그런 다음 인증 관리자는 활동 흐름을 해당 지갑으로 전달하여 나머지 거래를 처리하고 인증자를 사용자 인증 정보로 반환합니다. 참고: 인증자가 사용자 인증 정보 응답이 반환되면 이를 처리하고 확인해야 합니다.

사용자 환경

Android 흐름에서 볼 수 있듯이 사용자는 적절한 사용자 인증 정보를 선택하기 위해 인증 관리자 UI와 한 번만 상호작용하면 됩니다. 다음은 선택기가 표시되는 방식의 예입니다.

인증 관리자의 디지털 사용자 인증 정보 UI를 보여주는 이미지
그림 3. 디지털 인증 UI

기준

디지털 사용자 인증 정보 요청은 OpenID4VP 표준을 사용하여 생성됩니다. 디지털 인증 정보 데모 사이트에서 요청 예시를 확인할 수 있습니다.

디지털 사용자 인증 정보 응답은 일반적으로 표준화된 사용자 인증 정보 형식으로 반환됩니다. 이러한 프로토콜은 다양한 표준 기관에서 유지관리하며 W3C 증명 서명, sd-jwt, mdoc 등이 있습니다.

맞춤 프로토콜도 가능하지만 애플리케이션에서는 표준 프로토콜 중 하나를 사용하는 것이 좋습니다.

사용해 보기

Android 지갑 및 웹 기반 인증자로 여러 플랫폼에서 디지털 사용자 인증 정보 흐름을 테스트할 수 있습니다.

  1. Android 휴대전화에 CMWallet 공개 샘플을 설치합니다. 저장소에서 가져와 Android 스튜디오에서 직접 설치하거나 https://github.com/digitalcredentialsdev/CMWallet/actions으로 이동하여 최신 빌드를 선택하여 최신 app-debug.apk 파일에 액세스하면 됩니다.
  2. CMWallet을 열어 인증 관리자에 메타데이터를 등록합니다. 기기가 서로 연결되도록 블루투스가 사용 설정되어 있는지 확인합니다.
  3. https://digital-credentials.dev/로 이동하여 Request Credentials (OpenID4VP)를 선택합니다.
  4. 경고 메시지를 수락하고 휴대전화로 QR 코드를 스캔한 다음 '패스키 사용'을 선택하고 확인을 탭하여 사용 가능한 사용자 인증 정보를 표시합니다.
  5. CMWallet에서 사용자 인증 정보를 선택하여 브라우저로 돌아갑니다. 브라우저에 반환된 사용자 인증 정보가 표시됩니다.

참고 항목

  • Credential Manager를 사용하여 앱에서 디지털 사용자 인증 정보를 요청하는 방법을 자세히 알아보려면 Credential Verifier API 페이지를 참고하세요.
  • 인증 관리자를 사용하여 디지털 지갑을 빌드하는 방법을 자세히 알아보려면 인증 홀더 API 페이지를 참고하세요.