Meet Corbado at Identiverse 2026 - Las Vegas, June 16Las Vegas
概要に戻る

パスキープロバイダー:種類、AAGUID、および導入状況

ファーストパーティ/サードパーティのパスキープロバイダーとパスキー認証プロバイダーの違い、およびAndroid、iOS、Webでパスキーを管理するAAGUIDについて解説します。

Vincent Delitz
Vincent Delitz

作成日: 2024年3月25日

更新日: 2026年5月28日

パスキープロバイダー:種類、AAGUID、および導入状況

このページは自動翻訳されています。英語の原文は こちら.

PasskeysCheatsheet Icon

Passkeysチートシート. パスキープログラム向けの実践ガイド、展開パターン、KPI。

チートシートを入手
重要なポイント
  • 2つの主要なカテゴリが存在します。ファーストパーティ/サードパーティのパスキープロバイダー(クライアントサイド、デバイス上)とパスキー認証プロバイダー(サーバーサイド、アプリに統合されるCorbadoなど)です。
  • ファーストパーティのパスキープロバイダーは、iCloudキーチェーンやGoogleパスワードマネージャーのようなOSネイティブなシステムです。サードパーティのプロバイダーは、プラットフォームAPIを通じて統合されるパスワードマネージャーです。
  • 各パスキープロバイダーは、認証データに埋め込まれた固有のAAGUID(Authenticator Attestation Globally Unique Identifier)を持ちます。これにより、リライングパーティ(Relying Party)はアカウント設定でパスキーを識別し、ラベルを付けることができます。
  • WebAuthnのexcludeCredentialsオプションにより、ユーザーが同じプロバイダーに複数のパスキーを登録することを防ぎ、混乱を軽減し、アカウント管理のUXを向上させます。
  • 2024年3月現在、一部のプラットフォームでは**アテステーション(構成証明)**をサポートしていません。つまり、これらのプラットフォーム上のAAGUID値は暗号的に検証できないため、注意して使用する必要があります。

1. はじめに#

パスキーを使用する場合や、パスキー実装の分野で作業する場合に、非常に重要なコンポーネントとなるのがパスキープロバイダーです。しかし、パスキーエコシステムにおいて重要な部分であるにもかかわらず、多くの人はパスキープロバイダーについて大まかにしか理解していなかったり、ファーストパーティのパスキープロバイダーサードパーティのパスキープロバイダー、そしてパスキー認証プロバイダーの違いを知りません。

PasskeyAssessment Icon

15分で無料のパスキー評価を受けられます。

無料相談を予約

このブログ記事は、その点について明らかにすることを目的としています。ソフトウェア開発者、プロダクトマネージャー、あるいは単に最新のWebセキュリティに興味がある方にとって、パスキープロバイダーの役割と種類を理解することは不可欠です。このトピックを解き明かすことで、人々が自信を持ってパスキーを理解するための知識を提供したいと考えています。

2. パスキープロバイダーとは何か?#

パスキープロバイダーは、パスキーベースの認証エコシステムにおいて基本的な役割を果たし、ユーザーのデバイスとリライングパーティ(オンラインサービス)への安全でシームレスなアクセスの架け橋として機能します。しかし、公式な定義はなく、オンラインでもさまざまな解釈が見られる中で、パスキープロバイダーとは正確には何なのでしょうか。

以下の定義は私たちの見解を反映したものであり、これが唯一の正確な定義であると主張するものではありません。

パスキープロバイダーとは、本質的にパスキーの作成、管理、および使用を可能にするあらゆるエンティティのことです。調査を通じて、パスキープロバイダーを分類できる2つの主要なカテゴリを特定しました。ファーストパーティ / サードパーティのパスキープロバイダーパスキー認証プロバイダーです。

2.1 ファーストパーティおよびサードパーティのパスキープロバイダー#

このカテゴリには、クライアントサイド(ユーザーのデバイス上)でパスキーを生成できるエンティティが含まれます。これらのプラットフォームを通じてパスキーが作成されると、オペレーティングシステムメーカー(例:iCloudキーチェーン、Googleパスワードマネージャー)のクラウドや、サードパーティのパスワードマネージャー(例:KeePassXC1PasswordDashlane — 詳細は後述)に安全に管理・保存されます。

ネイティブにパスキーの作成と管理を可能にするオペレーティングシステムは、ファーストパーティのパスキープロバイダーと見なされます。対照的に、APIを通じてプラットフォームと統合されるサードパーティのパスワードマネージャーは、サードパーティのパスキープロバイダーと呼ばれます。

1つのファーストパーティまたはサードパーティのパスキープロバイダーは同じAuthenticator Attestation Globally Unique Identifier(AAGUID)を持ち、これによりユーザーエクスペリエンスが向上します(例:アカウント設定でパスキーを区別しやすくなるなど)。場合によっては、同一のファーストパーティまたはサードパーティのパスキープロバイダーに属する複数のAAGUIDを持つこともあります。

iOS 17.4デバイス上のパスキープロバイダー

Android 14デバイス上のパスキープロバイダー

AndroidのCredential Manager API

2.2 パスキー認証プロバイダー#

2つ目のカテゴリには、開発者がアプリケーションに統合してパスキー管理のすべての側面を処理できる認証プロバイダーが含まれます。つまり、これらは前述のクライアントサイドではなく、サーバーサイドで機能するプロバイダーです。この定義には、ウェブサイトやアプリに対してパスキーを中心とした認証ソリューションを提供するCorbadoのようなソリューションも含まれます。したがって、これらのパスキープロバイダーはパスキー認証プロバイダーと表現する方がより正確であり、前述のファーストパーティおよびサードパーティのパスキープロバイダーと区別されます。

このブログ記事の次のセクションでは、私たちの定義に従って、ファーストパーティおよびサードパーティのパスキープロバイダーを指すために「パスキープロバイダー」という用語を使用します。

3. AAGUIDによるパスキープロバイダーの特定#

ユーザーがさまざまなリライングパーティに対してパスキーを採用し始めるにつれて、それらを効果的に管理することが大きな課題として浮上してきます。これは、1つのアカウントに複数のパスキーを使用するユーザーにも当てはまり、リライングパーティにとって編集や削除の目的でこれらのパスキーを区別することは複雑になる可能性があります。パスキーが提供する利便性とセキュリティにもかかわらず、ユーザーがパスキーの1つを紛失した場合に潜在的な問題が生じます。幸い、代替のパスキーを使用してリライングパーティのアカウントにアクセスすることは可能です。ユーザーが特定のパスキーを特定するのを支援するために、一部のリソースでは、アカウント設定のパスキーに対して作成日や最終使用日などのメタデータを追加することを推奨しています。さらに、作成時にユーザーエージェントやクライアントヒントを利用してパスキーに自動的に名前を付け、分類することが推奨されます。ただし、ネイティブのAndroidまたはiOSアプリ、およびサードパーティのパスキープロバイダーは、ユーザーエージェントを利用しない場合や、パスキーがサードパーティのパスキープロバイダーによって生成されたことを示す情報を追加しない場合があります。この制限により、プラットフォームやプロバイダーに関係なく、ユーザーがパスキーを効率的に管理できるようにするための改善された方法の必要性が浮き彫りになります。

W3CのWebAuthn仕様から引用

このパスキー管理を促進するために、開発者はAuthenticator Attestation Globally Unique Identifier(AAGUID)を利用できます。AAGUIDは、認証器の特定のインスタンスではなく、モデルに割り当てられた一意の識別子です。これは公開鍵クレデンシャルの認証器データ内に埋め込まれており、リライングパーティがパスキープロバイダーを識別する方法を提供します。この機能は、ユーザーとリライングパーティがパスキーの全体像を把握し、各パスキーがその作成元と正確に関連付けられていることを確認する上で不可欠です。

たとえば、Androidデバイス上のGoogleパスワードマネージャーを使用してパスキーが作成された場合、リライングパーティはGoogleパスワードマネージャーに固有のAAGUIDを受け取ることができます。このAAGUIDを参照することで、リライングパーティはパスキーに適切にマークを付けることができ、ユーザーの管理と識別を簡素化できます。さらに、リライングパーティは、WebAuthnサーバーオプションのexcludeCredentialsを使用することで、同じパスキープロバイダーに対して複数のパスキーが作成されるのを防ぐことができます。これにより、各パスキープロバイダーには1つのパスキーのみが存在するようになり、ユーザーの混乱を避けることでパスキーのUXがさらに向上します。

{ "attestation": "none", "authenticatorSelection": { "residentKey": "preferred", "userVerification": "preferred" }, "challenge": "6V61d0VM5bNTPxWSsrv7YKz0o4awe0ryoDh1V44RPRn6-mBQwv98BTRws6nMrBhEggGn7-tk1bl3YNSwc0oZpA", "excludeCredentials": [ { "id": "1kBn2dmhv5JhuFxqeco1khCBCUBLlWYqZmFtdDujH5pM", "transports": ["internal"], "type": "public-key" } ], "extensions": { "credProps": true }, "pubKeyCredParams": [ { "alg": -7, "type": "public-key" }, { "alg": -257, "type": "public-key" } ], "rp": { "id": "Passkey Demo", "name": "passkeys.eu" }, "user": { "displayName": "Test Name", "id": "ZG1sdVkyVnxe3SFJsYzNR", "name": "Test Name" } }

AAGUIDを使用してパスキープロバイダーを決定するために、リライングパーティはAAGUIDのコミュニティソースリポジトリを参照できます。このリポジトリは、パスキープロバイダーを名前で、場合によってはアイコンで識別するために必要なマッピングを提供し、パスキー管理のためのより直感的なユーザーインターフェイスを提供するのに役立ちます。ただし、一部のパスキープロバイダーは、未知または一般的なプロバイダーを表す汎用のAAGUID("00000000-0000-0000-0000-0000000000000")を意図的に使用する場合があることに注意することが重要です。

AAGUIDの取得は、ほとんどのWebAuthnライブラリで簡単に行えます。たとえば、サーバー側でSimpleWebAuthnを使用する場合、開発者は登録情報からAAGUIDを抽出し、それを既知のプロバイダーと照合することで、ユーザーがより簡単にパスキーを管理できるようになります(Googleの「AAGUIDを使用したパスキープロバイダーの決定」より引用)。

// Import a list of AAGUIDs from a JSON file import aaguids from "./aaguids.json" with { type: "json" }; // ... // Use SimpleWebAuthn handy function to verify the registration request. const { verified, registrationInfo } = await verifyRegistrationResponse({ response: credential, expectedChallenge, expectedOrigin, expectedRPID, requireUserVerification: false, }); // ... const { aaguid } = registrationInfo; const provider_name = aaguids[aaguid]?.name || "Unknown";

AAGUIDはパスキー管理のための強力なツールを提供しますが、注意して使用する必要があります。AAGUIDの整合性は、パスキープロバイダーの信頼性を検証するアテステーションプロセスに依存しています。有効なアテステーション署名がない場合、AAGUIDが操作される可能性があります。2024年3月現在、一部のプラットフォーム上のパスキーはアテステーションをサポートしていないことに注意が必要であり、使用には慎重な検討が求められます。

以下に、非常に一般的なパスキーのオペレーティングシステムバージョンとブラウザーを使用するAndroidアプリ、iOSアプリ、およびWebアプリ向けのファーストパーティおよびサードパーティのパスキープロバイダーの非網羅的なリストを示します。

4. Android、iOS、Web向けのパスキープロバイダー一覧#

以下は、パスキーの作成/保存を行うためのサードパーティのパスキープロバイダーのポップアップの一部です。

4.1 1Password#

1Passwordの詳細な分析はこちらをご覧ください。

4.2 Bitwarden#

4.3 Dashlane#

Dashlaneの詳細な分析はこちらをご覧ください。

4.4 Enpass#

4.5 KeePassXC#

KeePassXCの詳細な分析はこちらをご覧ください。

4.6 Keeper#

4.7 NordPass#

4.8 Proton#

5. 結論#

パスキーの展開と管理の中心となるのは、パスキーの作成と管理を促進するだけでなく、さまざまなプラットフォームやデバイス間でのシームレスな統合を確保するエンティティであるパスキープロバイダーの役割です。

パスキープロバイダーとは何か、ファーストパーティとサードパーティのプロバイダーの違い、およびAuthenticator Attestation Globally Unique Identifier(AAGUID)の重要な役割を理解することが、このブログ記事の目的でした。説明したように、AAGUIDの使用は、パスキーのより簡単な識別と管理を可能にする有望なソリューションを提供します。

さらに、現在Android、iOS、およびWindowsにどのファーストパーティおよびサードパーティのパスキープロバイダーが存在するかを分析し、ユーザーが適切なサードパーティのパスキープロバイダーや好みのデバイスを見つけるのに役立つ情報を提供しました。

開発者やプロダクトマネージャーにとって、パスキープロバイダーとその管理に関する洞察は、パスキー認証の技術的な実装を導くだけでなく、ユーザーエクスペリエンスとセキュリティの向上というより広範な目標にも合致するものです。

Corbado

Corbadoについて

Corbadoは、大規模なconsumer認証を運用するCIAMチームのためのPasskey Intelligence Platformです。IDPのログや一般的なanalyticsツールでは見えないものを可視化します。どのデバイス、OSバージョン、ブラウザ、credential managerがpasskeyに対応しているか、なぜ登録がログインにつながらないのか、WebAuthnフローのどこで失敗するか、OSやブラウザのアップデートがいつ静かにログインを壊すか — Okta、Auth0、Ping、Cognito、あるいは自社IDPを置き換えることなく、すべてを把握できます。2つのプロダクト:Corbado Observepasskeyとその他あらゆるログイン方式のobservabilityを提供します。Corbado Connectanalytics内蔵のmanaged passkeyを追加します(既存のIDPと併用)。VicRoadsはCorbadoで500万人超のユーザーにpasskeyを提供しています(passkey有効化率+80%)。 Passkeyエキスパートに相談する

パスキーの展開で実際に何が起きているかを把握できます。

Consoleを見る

この記事を共有


LinkedInTwitterFacebook