このページは自動翻訳されています。英語の原文は こちら.
エンタープライズPasskeyホワイトペーパー. パスキープログラム向けの実践ガイド、展開パターン、KPI。
iOS 17とAndroid 14のリリースにより、ネイティブモバイルアプリにおけるパスキーの状況は根本的に変化しました。初めてサードパーティ製パスワードマネージャーがパスキープロバイダーとして機能できるようになり、iCloudキーチェーンとGoogleパスワードマネージャーによる独占状態が崩れました。これにより、ユーザーは1Password、Bitwarden、Dashlaneなどの信頼できる独自のソリューションをネイティブアプリの認証フローに持ち込むことができます。これはユーザーの選択肢という点で大きな勝利ですが、開発者には大きな複雑さをもたらします。パスキーの実装は、ネイティブモバイルアプリケーション内の異なるパスワードマネージャー間で異なる動作をする可能性があります。そのため、どのチームにとってもネイティブアプリのパスキーとサードパーティ製パスワードマネージャーを適切にテストすることが重要です。
この包括的なガイドでは、サードパーティ製パスワードマネージャーを用いたネイティブアプリのパスキーテストに対する、私たちの実戦的なアプローチを共有します。パスキーのエコシステムは2025年に大きく成熟しましたが、実際の導入にあたっては、多様なパスワードマネージャーの実装にわたる慎重な検証が依然として必要です。私たちはこれまでの経験を実用的なテスト計画としてまとめ、ネイティブアプリがユーザーの好むパスワードマネージャーとシームレスに連携できるようにしました。

Passkeysチートシート. パスキープログラム向けの実践ガイド、展開パターン、KPI。
パスワードマネージャーのエコシステムは、プラットフォームネイティブなソリューションを超えて進化しています。ユーザーは、クロスプラットフォームの同期、エンタープライズ機能、プライバシーの好みなど、特定のニーズに基づいて1Password、Bitwarden、Dashlane、Proton Pass、NordPassなどのサードパーティ製パスワードマネージャーを積極的に選択しています。ネイティブiOS / Androidアプリは、ユーザーに信頼するパスワード管理ソリューションの変更を強制することなく、この多様性に対応する必要があります。
Corbadoのページ全体で測定したデータに基づくと、一般ユーザーの5〜10%のみがサードパーティ製パスワードマネージャーに依存していることがわかります。この数字は低く聞こえるかもしれませんが、大規模な環境で作業している場合、パスキー実装の認識とサポートチケットの数に大きな影響を与えます。一部のパスワードマネージャーはWebAuthn仕様をわずかに異なる方法で実装しており、ユーザーエクスペリエンスの微妙な変化やバグさえも引き起こすことがわかっています。
ネイティブiOSおよびAndroidアプリは、パスキーを利用するための異なる方法を提供します。Androidでは、パスキーのオーバーレイや、パスキーセレモニーをトリガーする手動のテキストフィールド入力に遭遇します(Webアプリの場合、AndroidはConditional UIもサポートしています)。iOSは、Conditional UIや手動のテキストフィールド入力とともに、独自のパスキーオーバーレイのセットを提示します。さらに、確認すべき他のエッジケースもあります。全体として、ネイティブアプリケーションは以下を適切に処理する必要があります。
正しいフラグ設定により、パスキーがデバイスやプラットフォーム間で期待通りに機能するかどうかが決まります。重要な値には以下が含まれます。
設定を誤ったフラグが常に即座の障害を引き起こすとは限りません。ただし、パスキーが1つのデバイスで利用可能であっても、デバイス間で同期されない(同じサードパーティ製パスワードマネージャーが両方のデバイスで利用可能であっても)といった微妙な問題や不整合を引き起こす可能性があります。テストでの発見の1つは、一部のサードパーティ製パスワードマネージャーがBE/BSフラグを不適切に設定しており、パスキーの問題の大きな割合を占めていることでした。
シングルアクティビティ (Android) およびシングルシーン (iOS) アーキテクチャでは、細心の注意を払ったライフサイクル管理が必要です。パスワードマネージャーのシートが表示されて閉じられたとき、アプリは状態を保存し、コールバックを処理し、正しく再開する必要があります。これは、launchModeの設定が予期しない動作を引き起こす可能性があるAndroidでは特に重要です。
たとえば、MainActivityをlaunchMode="singleInstance"に設定すると問題が発生することがわかりました。一部のAndroidバージョンとOEMのカスタマイズでは、このモードによりPasskey
Credential
ManagerのUIが別のタスクとして開かれます。これにより、「最近(Recents)」画面に混乱を招く追加のアプリエントリが追加されるだけでなく、パスキーダイアログが開いている間にアプリがバックグラウンドに移行した場合、アプリがハングアップする可能性もあります。
推奨される修正方法は、設定をlaunchMode="singleTask"に変更することです。これにより、Credential
Managerが別のタスクを生成するのを防ぎ、異なるOEM(Samsung、Google、Vivoなど)間でより予測可能なライフサイクルを確保し、ベンダー固有のバグのリスクを軽減します。これは、ナビゲーション、オーバーレイ、ディープリンクをテストするためのより安定した基盤を提供します。
このようなライフサイクルの問題は、実際にはアプリケーションレベルの問題であるにもかかわらず、「パスワードマネージャーのバグ」を装うことがよくあります。適切なインストルメンテーションと異なるプロバイダー間でのテストは、これらのパターンを早期に特定するのに役立ちます。
ネイティブアプリのパスキーテストは、最も広く採用されているサードパーティ製パスワードマネージャーに焦点を当ててください。
主要なターゲット(必須のカバレッジ):
副次的なターゲット(ユーザーベースに基づく):
利用可能なすべてのパスワードマネージャーをテストしようとする誘惑は避けてください。ユーザーベースの90%を占めるプロバイダーに焦点を当てます。私たちの分析によると、5つの主要なターゲットがEU/米国/英国/オーストラリア/ニュージーランドにおけるサードパーティ製パスワードマネージャーユーザーの85%をカバーしていました。
各テストの実行を開始する前に、クリーンで再現可能な環境を確保してください。
1. 認証情報の状態をクリーンにする:
2. テスト環境を安定させる:
各テストでは、パスキー機能の特定の側面を検証します。合格/不合格のステータスと、異常に関する詳細なメモを使用して、結果を体系的に文書化します。
グレースフルなキャンセル処理を検証する
✓ パスワードマネージャーのシートが正しく開く
✓ ユーザーがパスキーを作成せずにキャンセルする
✓ アプリがログイン画面に戻る ✓ パスワードマネージャーに孤立した認証情報がない
✓ UIに適切な再試行オプションが表示される
認証フロー後のパスキー作成を検証する
✓ ローカル認証が確実に起動する
✓ 生体認証が正常に完了する
✓ 正しいRP IDで認証情報が作成される
✓ アプリがループすることなく認証済み状態に移行する
標準的な認証シナリオをテストする
✓ パスキーのオーバーレイUIが表示されるか、テキストフィールドのシナリオでユーザーがユーザー名を提供する ✓ 生体認証のスキャンと単一の生体認証プロンプトが認証の成功につながる
✓ 選択ループやシートの再表示がない
✓ 認証後もセッションが安定している
アプリ内パスキー管理を検証する
✓ 正しいRP ID、発見可能性、およびBE/BSフラグ
✓ 作成後もアプリが認証されたままである
✓ パスワードマネージャーが正しいラベルで即座に更新される
認証情報のライフサイクル管理をテストする
✓ 設定でパスキーを削除する ✓ パスキーによるログインが不可能になる
✓ 適切なフォールバックオプションが提供される
アプリからWebへの移植性を検証する
✓ ブラウザがアプリで作成されたパスキーを認識する
✓ 選択シートに正しいRPの関連付けが表示される
✓ QR/CDAの迂回なしに認証が完了する
Webからアプリへの認証情報共有をテストする
✓ アプリがWebで作成された認証情報を選択画面に表示する
✓ 初回の認証試行が成功する
✓ パスワードへの強制的なフォールバックがない
ネイティブアプリからデスクトップブラウザへのパスキー同期を検証する
✓ アプリで作成されたパスキーがデスクトップのパスワードマネージャーに同期される ✓ 同期されたパスキーがデスクトップブラウザでシームレスに機能する ✓ QRコード / クロスデバイスフローがトリガーされない ✓ ループやエラーなしに認証が完了する
デスクトップブラウザからネイティブアプリへのパスキー同期を検証する
✓ デスクトップで作成されたパスキーがモバイルのパスワードマネージャーに同期される ✓ ネイティブアプリが同期されたパスキーを正しく表示する ✓ パスワードへのフォールバックなしに認証が成功する ✓ ログがアサーションを正しいクレデンシャルIDに関連付けている
スマートフォンをセキュリティキーとして使用するシナリオを検証する
✓ スマートフォンがWeb CDA用にアプリで作成された認証情報を提供する
✓ 「利用可能なパスキーがありません」という誤ったエラーが出ない
✓ モバイルでの生体認証後にWebセッションが完了する
私たちの広範なテストにより、サードパーティ製パスワードマネージャーのパスキー統合に影響を与えるいくつかの繰り返し発生するパターンが明らかになりました。
問題: あるデバイスで作成された認証情報が他のデバイスにすぐに表示されない場合があります。
解決策: エクスポネンシャルバックオフによる再試行ロジックを実装します。同期の遅延を経験しているユーザーに手動の更新オプションを提供します。
問題: パスワードマネージャーの動作は、特にAndroid 14以降とiOS 17以降で、OSバージョン間で大きく異なります。
解決策: 互換性マトリックスを維持し、検出されたOSバージョンに基づいてフローを調整します。最適なエクスペリエンスのための最小バージョン要件を検討してください。
ネイティブアプリでのサードパーティ製パスワードマネージャーのパスキーサポートを成功裏に実装するには、体系的なテストと細部への注意が必要です。実際のテストを通じて洗練された私たちの包括的なテスト計画は、パスキー統合を検証するための強固な基盤を提供します。
本番環境への展開に向けた重要なポイント:
パスキーのエコシステムは急速に進化し続けています。パスワードマネージャーは実装を定期的に更新し、オペレーティングシステムは新機能を導入し、WebAuthn仕様自体も進歩しています。今すぐ堅牢なテストフレームワークを確立することで、技術が成熟するにつれて適応する準備が整います。
新しいパターンが現れるにつれて、私たちはSDKとテスト方法論を更新し続けます。包括的なサードパーティ製パスワードマネージャーのテストへの投資は、サポートの負担を軽減し、ユーザー満足度を向上させるという形で報われます。結局のところ、ユーザーがどのパスワードマネージャーを選択しても、認証は単に機能するべきなのです。
Corbadoは、大規模なconsumer認証を運用するCIAMチームのためのPasskey Intelligence Platformです。IDPのログや一般的なanalyticsツールでは見えないものを可視化します。どのデバイス、OSバージョン、ブラウザ、credential managerがpasskeyに対応しているか、なぜ登録がログインにつながらないのか、WebAuthnフローのどこで失敗するか、OSやブラウザのアップデートがいつ静かにログインを壊すか — Okta、Auth0、Ping、Cognito、あるいは自社IDPを置き換えることなく、すべてを把握できます。2つのプロダクト:Corbado Observeは passkeyとその他あらゆるログイン方式のobservabilityを提供します。Corbado Connectは analytics内蔵のmanaged passkeyを追加します(既存のIDPと併用)。VicRoadsはCorbadoで500万人超のユーザーにpasskeyを提供しています(passkey有効化率+80%)。 Passkeyエキスパートに相談する →
1Password、Bitwarden、Dashlane、Proton Pass、NordPassを主要なターゲットとして優先してください。これら5つのプロバイダーは、EU/米国/英国/オーストラリア/ニュージーランド市場におけるサードパーティ製パスワードマネージャーユーザーの85%をカバーしており、ロングテールなプロバイダーに過剰な投資をすることなく、幅広いカバレッジを提供します。
不適切なバックアップ適格性 (BE) とバックアップ状態 (BS) フラグの設定が、クロスデバイス同期の失敗の主な原因です。一部のサードパーティ製パスワードマネージャーはこれらのフラグを不適切に設定するため、同じパスワードマネージャーが両方にインストールされていても、パスキーが1つのデバイスに存在して他のデバイスには同期されません。
MainActivityをlaunchMode singleInstanceに設定すると、Credential ManagerのUIが別のタスクとして生成され、混乱を招く「最近」のエントリが作成され、バックグラウンドに移行したときにアプリがハングアップする可能性があります。構成をlaunchMode singleTaskに変更すると、Samsung、Google、VivoなどのOEM全体でこの問題が解決します。
包括的なテスト計画は、パスキーの作成とグレースフルなキャンセル、オーバーレイとテキストフィールド認証、アプリ内認証情報管理、フォールバックを伴う認証情報削除、双方向のクロスデバイス同期という10のシナリオをカバーします。クロスプラットフォームのテストでは、アプリで作成されたパスキーがブラウザで認証され、Webで作成されたパスキーがネイティブアプリで認証されることも確認する必要があります。
関連記事
目次