Verified ID로 Microsoft Entra 지갑 라이브러리 사용
이 자습서에서는 모바일 앱이 Verified ID와 함께 Microsoft Entra 지갑 라이브러리를 사용하여 확인 가능한 자격 증명을 발급하고 제시하는 방법을 알아봅니다.
필수 조건
- Mac/Windows 및 Android 테스트 디바이스에 설치된 Android Studio Android 테스트 디바이스에서 개발자 모드를 사용하도록 설정해야 합니다.
- Apple 개발자 계정, Xcode가 설치된 Mac, 개발자 모드가 사용하도록 설정된 iOS 테스트 디바이스. iOS 버전은 IO 16 이상이어야 합니다.
- 테스트 디바이스에 QR 코드 읽기 권한자 앱을 설치합니다. WalletLibraryDemo 앱에는 QR 코드를 검사하는 기능이 없으므로 QR 코드를 검사하려면 QR 코드 읽기 권한자 앱이 필요합니다.
이 자습서를 따르고 데모 앱을 실행하기 위해 모바일 개발자가 될 필요는 없습니다. 도구와 테스트 디바이스, 그리고 시도하려고 하면 됩니다. 또한 공용 엔드투엔드 데모 웹 사이트에서 데모 앱을 테스트할 수 있으므로 온보딩된 Microsoft Entra Verified ID 테넌트가 필요하지 않습니다.
참고 항목
최신 지갑 라이브러리를 사용하여 2024년 2월부터 검증된 ID에서 사용하는 NIST 준수 P-256 곡선에 대한 지원을 받으세요.
Microsoft Entra 지갑 라이브러리란?
iOS 및 Android용 Microsoft Entra 지갑 라이브러리는 모바일 앱에서 Microsoft Entra Verified ID 플랫폼 사용을 시작할 수 있는 기능을 제공합니다. 모바일 앱은 지갑 라이브러리를 사용하여 업계 표준에 따라 확인 가능한 자격 증명을 발급하고 제시합니다.
Microsoft Entra 지갑 라이브러리는 언제 사용해야 하나요?
Microsoft Authenticator에는 Microsoft Entra Verified ID의 지갑 역할을 하는 모든 기능이 있습니다. 그러나 Microsoft Authenticator를 사용할 수 없는 경우 지갑 라이브러리가 대안이 됩니다. 사용자에게 친숙한 모바일 앱이 이미 있고 이 앱에 확인 가능한 자격 증명 기술을 포함하는 것이 더 적합한 경우를 예로 들 수 있습니다.
동일한 모바일 디바이스에서 함께 전자지갑 라이브러리를 사용하여 Microsoft Authenticator 및 모바일 앱을 사용할 수 있습니다. 인증자가 설치되어 있다면, openid://의 프로토콜 처리기를 등록하는 앱입니다. 따라서 귀하의 앱은 발급 및 프레젠테이션 요청이 귀하의 앱으로 전달되도록 해야 합니다. openid:// 프로토콜을 사용하는 HTML 페이지에 포함된 딥 링크를 사용하면 Microsoft Authenticator가 시작됩니다.
Microsoft는 Microsoft Entra 지갑 라이브러리를 사용하나요?
예, 지갑 라이브러리는 Microsoft Authenticator에서 사용됩니다. 일부 기능은 인증자에 먼저 나타날 수 있지만 이를 지갑 라이브러리에서 사용할 수 있도록 하는 것이 Microsoft의 목표입니다.
내 앱에 Microsoft Entra 지갑 라이브러리를 추가하려는 활동은 무엇인가요?
Android용 Maven 종속성을 추가하고 iOS용 Cocoapod 종속성을 추가하여 모바일 앱 프로젝트에 지갑 라이브러리를 추가합니다.
iOS의 경우 Podfile에 WalletLibrary Pod를 추가합니다.
target "YourApp" do
use_frameworks!
pod "WalletLibrary", "~> 1.0.1"
end
그런 다음 요청을 처리하기 위해 일부 코드를 추가해야 합니다. 자세한 내용은 WalletLibraryDemo 샘플 코드를 참조하세요.
/// Create a verifiedIdClient.
let verifiedIdClient = VerifiedIdClientBuilder().build()
/// Create a VerifiedIdRequestInput using a OpenId Request Uri.
let input = VerifiedIdRequestURL(url: URL(string: "openid-vc://...")!)
let result = await verifiedIdClient.createRequest(from: input)
/// Every external method's return value is wrapped in a Result object to ensure proper error handling.
switch (result) {
case .success(let request):
/// A request created from the method above could be an issuance or a presentation request.
/// In this example, it is a presentation request, so we can cast it to a VerifiedIdPresentationRequest.
let presentationRequest = request as? VerifiedIdPresentationRequest
case .failure(let error):
/// If an error occurs, its value can be accessed here.
print(error)
}
그런 다음 앱에서 다음과 같은 주요 작업을 처리해야 합니다.
- 요청 URL을 가져오는 중입니다. 지갑 라이브러리에는 QR 코드 등을 검사하는 기능이 없습니다. 앱에 기본 제공되지 않는 다른 옵션에 대한 지원을 제공하려면 해당 기능을 직접 추가해야 합니다.
- 자격 증명을 저장합니다. Wallet 라이브러리는 응답 서명에 사용되는 프라이빗 및 공개 키를 만들어 디바이스에 저장하지만 자격 증명을 저장하는 기능은 제공되지 않습니다. 모바일 앱에 대한 자격 증명 스토리지를 관리해야 합니다.
- 사용자 인터페이스. 저장된 자격 증명의 시각적 표현과 발급 및 프레젠테이션 프로세스를 구동하기 위한 UI 요소를 구현해야 합니다.
지갑 라이브러리 데모 앱
지갑 라이브러리는 아무런 수정 없이 바로 사용할 수 있는 GitHub 리포지토리의 데모 앱과 함께 제공됩니다. 빌드하고 배포하기만 하면 됩니다. 데모 앱은 발급 및 프레젠테이션을 최소한으로 보여 주는 간단한 구현입니다. 빠르게 시작하려면 QR 코드 읽기 권한자 앱을 사용하여 QR 코드를 검사한 다음 복사하여 데모 앱에 붙여넣을 수 있습니다.
데모 앱을 테스트하려면 자격 증명을 발급하고 자격 증명에 대한 프레젠테이션 요청을 하는 웹앱이 필요합니다. 이 자습서에서는 이러한 목적으로 Woodgrove 공용 데모 웹앱을 사용합니다.
Android 샘플 빌드
Android Studio를 사용하여 개발자 컴퓨터에서 다음 단계를 수행합니다.
Android 지갑 라이브러리 GitHub 리포지토리를 다운로드하거나 복제합니다. 전자지갑 라이브러리 폴더가 필요하지 않으며 원하는 경우 삭제할 수 있습니다.
Android Studio를 시작하고 walletlibrarydemo의 부모 폴더를 엽니다.
빌드 메뉴를 선택한 다음 프로젝트 만들기를 선택합니다. 이 단계에는 시간이 좀 걸립니다.
USB 케이블을 통해 Android 테스트 디바이스를 랩톱에 연결합니다.
Android Studio에서 테스트 디바이스를 선택하고 실행 단추(녹색 삼각형) 버튼을 선택합니다.
Android 샘플을 사용하여 자격 증명 발급
WalletLibraryDemo 앱 시작
랩톱에서 공용 데모 웹 사이트 https://aka.ms/vcdemo를 실행하고 다음을 수행합니다.
- 이름과 성을 입력하고 다음을 누릅니다.
- True Identity 확인을 선택합니다.
셀카를 선택하고 , 정부 발급 ID를 업로드할. 데모에서는 시뮬레이션된 데이터를 사용하므로 실제 셀카나 ID를 제공할 필요가 없습니다. - 선택 후 다음을 선택하고 확인.
테스트 디바이스에서 QR 코드 읽기 권한자 앱으로 QR 코드를 검사한 다음 QR 코드 읽기 권한자 앱에 표시된 전체 URL을 복사합니다. PIN 코드를 기억해둡니다.
WalletLibraryDemo 앱으로 다시 전환하고 클립보드의 URL을 붙여넣습니다.
CREATE REQUEST 단추를 누릅니다.
앱이 요청을 다운로드하면 제공된 예제와 같은 화면이 표시됩니다. 흰색 사각형인 텍스트 상자를 선택하고 브라우저 화면에 표시되는 PIN 코드를 입력합니다. 그런 다음 완료 단추를 선택합니다.
발급이 완료되면 데모 앱에 자격 증명에 대한 클레임이 표시됩니다.
Android 샘플을 사용하여 자격 증명 제시
샘플 앱은 발급된 자격 증명을 메모리에 보관하므로 발급 후 프레젠테이션에 사용할 수 있습니다.
자격 증명을 성공적으로 발급한 경우 WalletLibraryDemo 앱은 홈 화면에 자격 증명 세부 정보를 표시해야 합니다.
브라우저의 Woodgrove 데모에서 아직 수행하지 않았다면 Woodgrove로 돌아가기을 선택하고, 3단계 개인 설정된 포털 접근으로 계속 진행합니다.
테스트 디바이스의 QR 코드 읽기 권한자 앱으로 QR 코드를 검사한 다음 전체 URL을 클립보드에 복사합니다.
WalletLibraryDemo 앱으로 다시 전환한 다음, URL에 붙여넣고 CREATE REQUEST 버튼을 선택합니다.
앱은 프레젠테이션 요청을 검색하고 메모리에 있는 일치하는 자격 증명을 표시합니다. 이 경우 하나만 있습니다. 작은 확인 표시가 나타나도록 클릭하고 완료 단추를 선택하여 프레젠테이션 응답을 제출합니다.
iOS 샘플 빌드
Xcode가 있는 Mac 개발자 컴퓨터에서 다음 단계를 수행합니다.
iOS 지갑 라이브러리 GitHub 리포지토리를 다운로드하거나 복제합니다.
Xcode를 시작하고 WalletLibrary의 최상위 폴더 열기
WalletLibraryDemo 프로젝트에 포커스 설정
팀 ID를 Apple 개발자 팀 ID로 변경합니다.
제품 메뉴를 선택한 다음 빌드를 선택합니다. 이 단계에는 시간이 좀 걸립니다.
USB 케이블을 통해 iOS 테스트 디바이스를 랩톱에 연결합니다.
Xcode에서 테스트 디바이스를 선택합니다.
제품 메뉴를 선택한 다음 실행 또는 실행 삼각형에서 선택
iOS 샘플을 사용하여 자격 증명 발급
WalletLibraryDemo 앱 시작
랩톱에서 공용 데모 웹 사이트 https://aka.ms/vcdemo를 실행하고 다음을 수행합니다.
- 이름과 성을 입력하고 다음을 누릅니다.
- True Identity 확인을 선택합니다.
셀카 선택하고정부 발급 ID업로드하세요. 데모에서는 시뮬레이션된 데이터를 사용하므로 실제 셀카나 ID를 제공할 필요가 없습니다. - 다음을 선택하고 확인을 선택하십시오.
테스트 디바이스에서 QR 코드 읽기 권한자 앱으로 QR 코드를 검사한 다음 QR 코드 읽기 권한자 앱에 표시된 전체 URL을 복사합니다. PIN 코드를 기억해둡니다.
WalletLibraryDemo 앱으로 다시 전환하고 클립보드의 URL을 붙여넣습니다.
요청 만들기 단추를 누릅니다.
앱이 요청 다운로드를 완료하면 예제와 같은 화면이 표시됩니다. 핀 추가 텍스트를 선택하여 핀 코드를 입력할 수 있는 화면으로 이동한 다음, 추가 버튼을 선택하여 돌아가서 마지막으로 완료 버튼을 선택합니다.
발급이 완료되면 데모 앱에 자격 증명에 대한 클레임이 표시됩니다.
iOS 샘플을 사용하여 자격 증명 제시
샘플 앱은 발급된 자격 증명을 메모리에 보관하므로 발급 후 프레젠테이션에 사용할 수 있습니다.
자격 증명을 성공적으로 발급한 경우 WalletLibraryDemo 앱은 홈 화면에 자격 증명 유형 이름을 표시합니다.
브라우저의 Woodgrove 데모에서 아직 수행하지 않았다면 Woodgrove로 돌아가기을 선택하고, 3단계로 개인 설정된 포털에 접근하여 계속 진행합니다 .
테스트 디바이스의 QR 코드 읽기 권한자 앱으로 QR 코드를 검사한 다음 전체 URL을 클립보드에 복사합니다.
WalletLibraryDemo 앱으로 다시 전환하고, 텍스트 상자에서 이전 요청 을 삭제하고, URL 텍스트 상자에 붙여넣은 후, 요청 만들기 단추를 선택합니다.
앱은 프레젠테이션 요청을 검색하고 메모리에 있는 일치하는 자격 증명을 표시합니다. 이 경우에는 하나만 있습니다. 작은 확인 표시가 파란색에서 녹색으로 전환되도록 클릭하고 완료 단추를 선택하여 프레젠테이션 응답을 제출합니다.
다음 단계
Microsoft Entra 확인 ID에 대한 테넌트를 구성하는 방법을 알아봅니다.