デジタル認証情報の概要

デジタル認証情報は、ユーザーの認証、認可、その他の情報提供に使用できる、暗号で検証可能なドキュメントです。通常、これらはモバイル運転免許証、デジタル パスポート、搭乗券などです。これらはデジタル ウォレットと呼ばれる仮想コンテナに保存され、アクセスして取得する方法を指定する W3C 標準の一部です。この標準は、W3C Credential Management API を使用したウェブ ユースケースと、Credential Manager の DigitalCredential API を使用した Android で実装されています。

デジタル認証情報について

現実世界では、身分証明書を財布に入れておき、要求されたときに提示します。

通常のウォレット操作のフローを示す画像
図 1. 現実世界の認証情報リクエストを処理するプロセス。リクエスタがユーザーに特定の認証情報を要求します。その後、ユーザーは実物の財布から選択して取り出します。最後に、ユーザーはリクエスト元に認証情報を提供します。

この場合、ユーザーは通常 1 つのウォレットを持ち、リクエストされた認証情報をウォレットから取得してリクエスターに提示します。ウォレットはほとんどが互換性があり、一般的に同じものを保存できます。

デジタル認証情報には、次のような主な違いがあります。

  1. ユーザーは、さまざまな異なる認証情報を含む複数のウォレット(ホルダーとも呼ばれます)を持つことが想定されています。ウォレットは、ウォレット内に保存できる認証情報を決定します。
  2. リクエスト元は人間ではなくアプリケーションになり、検証ツールと呼ばれます。
  3. 認証情報の提示はソフトウェアで行われます。つまり、API サーフェスが認証情報を取得して提示します。Android では、これは Credential Manager です。

そのため、Credential Manager は、以前はユーザーが処理していたいくつかの役割を担います。

  1. Android では、ウォレットは認証情報マネージャーの UI に表示されるように、認証情報メタデータを認証情報マネージャーに登録する必要があります。
  2. 認証情報マネージャーは、リクエストに基づいてウォレット間で認証情報を照合し、ユーザーが選択できるリストを表示します。
  3. ユーザーがリストから認証情報を選択すると、認証情報マネージャーがウォレットを呼び出し、ウォレットが取引の残りの部分(UI の表示など)を処理して、認証情報をアプリに返します。

このフローを次に示します。

デジタル認証情報のやり取りのフローを示す画像
図 2. デジタル クレデンシャルの検証のインタラクション モデル。Credential Manager は、ユーザーのウォレット全体で事前登録された認証情報のメタデータを使用して、検証ツールのリクエストを照合し、ユーザーに認証情報の選択を求めます。認証情報マネージャーは、アクティビティ フローを対応するウォレットに転送します。ウォレットは、取引の残りの部分を処理し、認証情報を検証ツールに返します。注: 認証情報レスポンスが返されたら、検証ツールでレスポンスを処理して検証する必要があります。

ユーザー エクスペリエンス

Android のフローで示されているように、ユーザーは Credential Manager UI を 1 回操作するだけで、適切な認証情報を選択できます。セレクタの例を次に示します。

認証情報マネージャーのデジタル認証情報 UI を示す画像
図 3. デジタル認証情報の UI。

基準

デジタル認証情報リクエストは、OpenID4VP 標準を使用して作成されます。リクエストの例については、デジタル認証情報デモサイトをご覧ください。

デジタル認証情報のレスポンスは通常、標準化された認証情報の形式で返されます。これらはさまざまな標準化団体によって維持されており、W3C Verifiable Credentialssd-jwtmdoc などがあります。

カスタム プロトコルも可能ですが、アプリケーションでは標準プロトコルのいずれかを使用することをおすすめします。

試してみる

Android ウォレットとウェブベースの検証ツールを使用して、プラットフォーム間のデジタル認証情報のフローをテストできます。

  1. Android スマートフォンに CMWallet 公開サンプルをインストールします。これを行うには、リポジトリからプルして Android Studio から直接インストールするか、https://github.com/digitalcredentialsdev/CMWallet/actions に移動して最新のビルドを選択し、最新の app-debug.apk ファイルにアクセスします。
  2. CMWallet を開いて、Credential Manager にメタデータを登録します。デバイス同士が接続できるように、Bluetooth が有効になっていることを確認します。
  3. https://digital-credentials.dev/ に移動し、Request Credentials (OpenID4VP) を選択します。
  4. 警告プロンプトを承認し、スマートフォンで QR コードをスキャンして、[パスキーを使用] を選択し、確認をタップして、利用可能な認証情報を表示します。
  5. CMWallet から認証情報を選択してブラウザに戻ります。ブラウザに返された認証情報が表示されます。

関連ドキュメント

  • Credential Manager を使用してアプリでデジタル認証情報をリクエストする方法について詳しくは、Credential Manager - Verifier API のページをご覧ください。
  • Credential Manager を使用してデジタル ウォレットを構築する方法については、Credential Manager - Holder API ページをご覧ください。