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

デジタル認証情報は、ユーザーが自分自身に関する情報を提供したり、自分自身を認証または認可したりするために使用できる、暗号で検証可能なデジタル ドキュメントです。デジタル認証情報は、オープンな W3C Digital Credentials API 業界標準に基づいています。Android では、これは Credential Manager の Digital Credentials API を通じて実装されます。

デジタル認証情報の使用フローを示す画像
図 1. サンプルアプリでデジタル認証情報を使用する。

デジタル クレデンシャルのメリット

デジタル認証情報には、物理的な認証情報や標準化されていないデジタル ドキュメントと比較して、次のような利点があります。

  • セキュリティと信頼性の向上: デジタル認証情報は暗号化され、データの完全性と信頼性が確保されます。これにより、認証情報が検証可能なソースによって発行され、改ざんされていないことが保証されます。
  • プライバシーの強化: 多くのデジタル認証情報形式は選択的開示をサポートしており、ユーザーは必要な情報のみを共有できます。たとえば、生年月日を明らかにせずに運転資格の証明を共有できます。
  • 一元化されたストレージ: ユーザーは、さまざまな発行者のさまざまな認証情報をデバイス上のデジタル ホルダーに保存できるため、物理カードを持ち歩く必要がなくなります。
  • 相互運用性: オープン標準に準拠することで、デジタル認証情報はさまざまなオペレーティング システム、デバイス、プラットフォームで機能します。

ユースケース

Digital Credentials API は、以下のような幅広いユースケースで使用できます。

  • 政府機関発行の身分証明書を受け入れる: アプリは、年齢確認、アカウント復元、本人確認(KYC)プロセスなどのフローで、政府機関発行の公的書類の属性をリクエストして使用できます。
  • 電話番号を確認する: アプリは、スマートフォンの SIM カードから取得したデジタル認証情報をユーザーの携帯通信会社と直接交換することで、電話番号の確認に API を使用できます。これにより、ワンタイム パスワード(OTP)が不要になり、セキュリティが強化され、送信コストが削減されます。詳しくは、電話番号の確認ガイドをご覧ください。
  • メールアドレスの確認: この API を使用すると、アプリは確認済みのメールをユーザーのデバイスから直接取得できるため、OTP が不要になり、登録、ログイン、アカウント復元をスムーズに行うことができます。詳しくは、メール確認に関するガイドをご覧ください。
  • カスタム認証情報: API の拡張性により、どのアプリでも独自のカスタム デジタル認証情報を発行できるようになり、対応する検証ツールがそれをリクエストできます。
  • 支払い認証情報と取引を確認する: この API を使用すると、ネイティブの暗号でバインドされたウォレット確認により、支払い承認とデジタル支払い認証情報(DPC)を保護できます。

デジタル認証情報の仕組み

デジタル認証情報のエコシステムには、主に次の 3 つのカテゴリのアプリが含まれます。

  • 発行者: 発行者は、認証情報を安全に作成して発行するアプリです。
  • ホルダー(ウォレット): ホルダーは、ユーザーのデバイス上で認証情報を保存するアプリです。これらの認証情報は、プレゼンテーション プロセスを通じてリクエスト元のアプリと共有できます。
  • 検証ツール: 検証ツールは、デジタル認証情報を検証して使用するアプリです。

Credential Manager の Digital Credentials API は、発行者、所有者、検証アプリ間のやり取りを調整します。

検証ツールがデジタル認証情報の要求を行うと、API を介して Android システムに要求が送信されます。認証情報マネージャーは、信頼できるシステム UI 内で、さまざまな所有者の対象となるデジタル認証情報を表示します。ユーザーが続行に同意すると、認証情報マネージャーは対応するホルダーを呼び出してレスポンスを生成します。

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

認証情報マネージャーにパスキー、パスワード、「Google でログイン」などの認証フロー用の組み込みユーザー インターフェースがあるのと同様に、Digital Credentials API のさまざまなユースケースにも標準化されたインターフェースがあります。

特定のユースケースに合わせて調整された UI バリエーションがあります。API を使用すると、Android システムは、次のようなシナリオでコンテキスト認識ボトムシートを自動的にレンダリングします。

  • メールアドレスの確認: 確認済みのメールアドレスと ID プロバイダが表示されたアカウント選択ツールがインターフェースに表示されます。
  • 電話番号の確認: ネットワーク事業者が表示された確認カードがインターフェースに表示されます。
  • マルチ認証情報: このビューでは、複数のカードが積み重ねられ、関連するアイテムを 1 回のタップでバンドルできます。
  • デジタル決済認証情報: この購入手続きシートには、支払いカードの詳細、販売者情報、取引の合計金額が表示され、すぐに確認できます。
デジタル認証情報の UX バリエーションを示す画像
図 2. メール確認、電話認証、複数の認証情報シナリオのデジタル認証情報の UX バリエーション。

業界標準

デジタル認証情報は、クロス プラットフォームの互換性を確保するために業界標準に準拠しています。一般的に使用されるオープン スタンダードは次のとおりです。

これらの標準は複数のプラットフォームやオペレーティング システムで広く使用されており、ウェブブラウザ、モバイル デバイス、その他のフォーム ファクタでシームレスな動作を実現します。これにより、デベロッパーはプラットフォームに関係なく、他のアプリとデジタル認証情報を交換できます。

試してみる

クロスプラットフォームのデジタル認証情報のフローをテストするには、Android 搭載デバイスにサンプル ホルダー アプリと検証ツールアプリをインストールします。

フローをテストするには、次の手順を行います。

  1. Android デバイスにサンプルアプリをインストールする: 次のいずれかの方法で、最初のデバイスにアプリをインストールします。
    • ビルド済み APK を使用する:
      • ホルダーアプリをダウンロードする: GitHub アカウントにログインし、ホルダーアプリの GitHub Actions ページに移動して、最新の成功したビルドを選択し、[アーティファクト] セクションから app-debug.apk ファイルをダウンロードします。このアプリは CMWallet と呼ばれます。
      • 検証ツールアプリをダウンロードする: サンプル検証ツールアプリについては、ID サンプル リポジトリから APK を取得します。次に、Android デバイスに APK をインストールします。このアプリは Digital Credentials Demo と呼ばれます。
    • ソースからビルドする: 記載されているリポジトリを複製し、Android Studio を使用してアプリをインストールします。
  2. サンプル ホルダーアプリを開く: サンプル ホルダーアプリを開きます。これにより、ホルダーの認証情報が Credential Manager に登録されます。
  3. サンプル検証ツールアプリを開く: サンプル検証ツールアプリを開き、ウォレットからデジタル認証情報をリクエストするオプションを選択します。CMWallet から利用可能な認証情報を表示するボトムシートが表示されます。
  4. 認証情報を選択: 検証アプリに送り返す認証情報を選択します。検証アプリに、返された認証情報のフィールドが表示されます。

リソース