デジタル認証情報の概要

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

デジタル認証情報を理解する

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

通常のウォレット操作のフローを示す画像
図 1. 物理的な認証情報リクエストを処理するプロセス。リクエスト元がユーザーに特定の認証情報を要求します。ユーザーは、物理的なウォレットからカードを選択して取得します。最後に、ユーザーがリクエスト元に認証情報を提供します。

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

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

  1. ユーザーは、さまざまな認証情報を含めることができる複数のウォレットを持っていることが想定されます。ウォレットは、内部に保存できる認証情報を決定します。
  2. リクエスト元は実際の人物ではなくアプリケーションになり、検証者と呼ばれます。
  3. 認証情報の提示はソフトウェアで行われるため、API サーフェスが認証情報を取得して提示します。Android では、これが認証情報マネージャーです。

そのため、認証情報マネージャーは、以前はユーザーが処理していたいくつかの役割を引き受けます。

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

このフローは次のとおりです。

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

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

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

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

基準

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

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

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

試してみる

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

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

関連ドキュメント

  • 認証情報マネージャーを使用してアプリでデジタル認証情報をリクエストする方法については、認証情報検証 API のページをご覧ください。
  • 認証情報マネージャーを使用してデジタル ウォレットを作成する方法については、認証情報ホルダー API のページをご覧ください。