パスキー導入後に現れる運用上のDay‑2問題を解説。リカバリ、クロスデバイスUX、ネイティブアプリ、採用戦略、プラットフォーム変更による5つのリスクと実務的な対策、大規模展開や監視・サポートの要点も網羅。
Vincent
Created: February 20, 2026
Updated: February 20, 2026

See the original blog version in English here.
+70-page Enterprise Passkey Whitepaper:
Learn how leaders get +80% passkey adoption. Trusted by Rakuten, Klarna & Oracle
パスキーを導入してはいけません。
少なくとも、何がなんでも導入すべきではありませんし、適切に行うためのリソースがないのであれば、なおさらです。
たしかに、パスキーはこの10年におけるコンシューマー向け認証技術の中で最高の出来事です。 フィッシングを撲滅でき、UX(ユーザー体験)を劇的に向上させることができます。しかし、間違ったやり方で導入されたパスキーは、多くの害をもたらす可能性もあります。
WebAuthn サーバーの実装自体はそれほど複雑ではありません。本当の課題は、その周辺にあります。パスキーを大規模かつ効率的に運用するには、事前の計画が必要です。いわゆる「Day 2」の問題、つまりパスキーのロールアウトを開始した後に初めて表面化する運用の現実について考える必要があります。
この記事では、パスキープロジェクトを頓挫させがちな 5つの「Day 2」問題について解説します。これらすべてを解決できなければ、パスキーを出荷する準備はできていないと言えるでしょう。逆にこれらを解決できれば、パスワードが決して提供できなかった、より安全で使いやすい認証システムを構築できるはずです。
エンジニアリングの世界では、「Day 1」は構築して出荷(ローンチ)する段階を指します。「Day 2」は、出荷したものを運用し、保守し、拡張していく段階です。パスキーにおいて、Day 1 は比較的シンプルです。
ほとんどのチームは、基本的なパスキーの実装を数日か数週間で稼働させることができます。
プロジェクトが失敗するのは Day 2 です。それは、実際のユーザーが、現実のエッジケースを含む実際のデバイスを使って、あなたのパスキーシステムと対話する瞬間です。MacBook 上では完璧に動作していたピカピカのデモが、企業のプロキシ環境下にある Windows ノートPCの Chrome ブラウザでは動かないことが発覚する瞬間です。そして、サポートチームの元に「ログインできなくなった」という問い合わせが殺到する瞬間でもあります。
動くパスキーのデモと、実運用レベルのパスキー展開の間には、巨大なギャップがあります。これまで私たちは、技術的な実装の落とし穴や、パスキープロジェクトが失敗する戦略的な理由について取り上げてきました。この記事では特に、運用という観点から「ライブ(本番稼働)後に何が起こるか」に焦点を当てます。
今回取り上げる 5つの Day 2 問題は以下の通りです。
リカバリとフォールバックを適切に設計しないと、大規模なユーザーの締め出し(ロックアウト)を招くか、排除したはずのフィッシングに対して脆弱なフローを再び導入してしまうことになります。
あるユーザーが iPhone でパスキーを登録し、その後 iPhone を紛失したケースを考えてみましょう。通常、こうしたリカバリケースの大部分はクレデンシャルマネージャー(iPhone であれば iCloud キーチェーン)によって処理されます。ユーザーが Apple アカウントにアクセスできる限り、同期されたパスキーを使って新しいデバイスでログインできます。しかし、そのクラウドアカウント自体にアクセスできなくなったらどうなるでしょうか? ここで、通常のリカバリパスの出番となります。
仮に、ログインしようとしているデバイスに秘密鍵がまだ残っていると想定して、WebAuthn のログインフローを開始したとします。すると、OS やブラウザのモーダル(ダイアログ)が表示され、「別のデバイスにあるパスキーでログインしてください」と求められます。基本的に、この時点でユーザーはアカウントから締め出された状態になります。パスキーが保存されている「別のデバイス」は手元にないのですから。ユーザーは大混乱に陥ります。これが数千人のユーザーに起これば、サポートの危機です。
一般的な対応策は、フォールバックとしてメールベースのアカウントリセットを追加することです。しかし、これではパスキーの目的が台無しです。フィッシング可能なリカバリチャネルを再導入してしまったことになるからです。ユーザーのメールを侵害できる攻撃者は、フィッシング耐性のあるパスキー実装を完全にバイパスできてしまいます。
私たちの考えでは、正しいアプローチは「階層化されたリカバリ(Layered Recovery)」です。
一般的に、コストと摩擦(Friction)の観点から、どのアカウントリカバリ層まで実装するかを判断する必要があります。たとえば、小売やEコマースでは、金銭的な理由から最初の2つの層だけを提供し、フィッシングのリスクを許容する場合もあるでしょう。セキュリティがより重要視される業界では、第3、第4の層まで踏み込みます。
層が増えるごとに複雑さは増します。ユースケースに必要な層を決定し、構築し、あらゆるデバイスの組み合わせでテストし、利用状況を監視する必要があります。これは、最初の WebAuthn 統合よりもはるかに多くの作業を要します。
多くのチームは、リカバリを単純化しすぎる(パスワードや SMS OTP に安易に戻る)か、複雑にしすぎます(例:リカバリのたびにハードウェアセキュリティキーを要求する)。適切なバランスは、脅威モデル、ユーザーベース、規制要件によって異なります。ここを間違えると、セキュリティ体制を弱体化させるか、あまりの使いにくさにユーザーがフローを離脱してしまうことになります。
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
Corbado proved to be a trusted partner. Their hands-on, 24/7 support and on-site assistance enabled a seamless integration into VicRoads' complex systems, offering passkeys to 5 million users.
数百万人が利用するパスキーを、迅速に。Corbado の導入プラットフォームで始めましょう。
無料で試すユーザーは Apple だけのクリーンな世界に住んでいるわけではありません。デバイスを切り替え、Windows と iOS を混在させ、様々なブラウザを使用し、企業管理されたセットアップで作業します。これらを想定していないと、パスキーのフローは破綻します。
パスキーのエコシステムは、3つの主要プラットフォーム(Apple、Google、Microsoft)、複数のブラウザ(Chrome、Safari、Firefox、Edge)、多数のパスキープロバイダー/クレデンシャルマネージャー(例:1Password、Bitwarden、Dashlane など)、そして無数の OS/ブラウザ/デバイスの組み合わせにまたがっています。それぞれの組み合わせで挙動が微妙に異なることがあります。
ユーザーが iPhone でパスキーを作成し、Windows ノートPCでログインしたい場合、クロスデバイス認証(通常はQRコードと Bluetooth を使用)を利用できます。このフローは機能しますが、壊れやすいものです。
私たちは数千ものデバイスの組み合わせで、こうしたエッジケースを直接目にしてきました。パスキーを自社開発する場合、これらすべてをテストし、対処する必要があります。もしできなければ、ユーザーはサポートチームでも説明できないようなエラーに遭遇することになります。
同じデバイス上であっても、ブラウザが異なれば挙動も異なります。macOS の Chrome は、macOS の Safari とは異なるパスキーのモーダルを表示します。Firefox には独自の挙動があります。Client Hints とユーザーエージェント検出は、適切なユーザーに適切なフローを提供するために不可欠ですが、すべての組み合わせでこれらを正しく解析し続けることは、終わりのない保守負担となります。
Web アプリにとってパスキーのテストと QA はすでに課題です(これについては「課題 5:プラットフォームの変更」で詳しく説明します)。しかし、製品にネイティブ iOS アプリや Android アプリも含まれる場合、Web 専門チームが直面することのないアーキテクチャ上の決定やプラットフォーム固有の挙動により、複雑さは倍増します。
最初の決断は、パスキーをネイティブで実装するか、WebView 経由で実装するかです。それぞれにトレードオフがあります。
| 観点 | ネイティブ実装 | WebView 実装 |
|---|---|---|
| UX 品質 | 最高クラス、プラットフォームネイティブな操作感 | WebView の種類による |
| 保守 | iOS と Android で別々のコードベース | Web ロジックを共有可能 |
| プラットフォーム要件 | Apple/Google の SDK 変更への追随が必要 | WebView のパスキーサポート問題への対処が必要 |
| 複雑さ | 高(プラットフォーム固有 API) | 中(ただし WebView の種類が重要) |
iOS だけを見ても、WKWebView、SFSafariViewController、SFAuthenticationSession、ASWebAuthenticationSession の中から選択が可能で、それぞれパスキーのサポート特性が異なります。Android では、Chrome Custom Tabs は標準的な WebView とは異なる挙動を示します。これらは Web 専門チームが決して下すことのない決断であり、それぞれの選択が独自のメンテナンス領域を生み出します。
アーキテクチャの決定以外にも、iOS と Android では OS レベルでパスキーの扱いが異なります。
NotAllowedError として表面化しますが、iOS では SimpleAuthenticationServices.AuthorizationError、Android の Credential Manager では User cancelled the operation となります。クロスプラットフォームのエラーマッピング完全版については、WebAuthn errors in production を参照してください。Web アプリとネイティブアプリの両方を運用する場合、QA の労力は単に2倍になるだけでなく、3倍になります。Web、iOS、Android はそれぞれ独立したパスキー環境として振る舞うため、個別のエンドツーエンドテストと監視が必要です。そして、即座に修正をデプロイできる Web とは異なり、ネイティブアプリの修正はアプリストアの審査サイクルによってブロックされます。
「パスキー対応済み」は「パスキーが使われている」ことを意味しません。ロールアウト戦略と測定指標がなければ、普及率は期待外れに終わり、社内でそのプロジェクトは失敗のレッテルを貼られてしまうでしょう。
これについては、なぜパスキーの実装は失敗するのかという記事で詳しく解説しました。ユーザーがパスキーに切り替えなければ、プロジェクトはすでに失敗しています。パスワードは支配的なままで、SMS OTP のコストは高止まりし、フィッシングのリスクは残り続け、組織は多大なエンジニアリング投資に対するリターンを得られません。
パスキー採用のビジネスケースは強力ですが、それは実際に採用(Adoption)が進んだ場合の話です。私たちは、優れた技術実装でパスキーをローンチしたにもかかわらず、ロールアウトと採用戦略を誰も考えていなかったために、普及率が 5% 未満にとどまった企業を見てきました。
パスキーの普及を促進することは、以下を必要とするプロダクトの課題です。
大規模なパスキー展開における私たちの経験に基づくと、企業が目指すべき数値は以下の通りです。
| 指標 | 低い(Weak) | 許容範囲 | 強い(Strong) |
|---|---|---|---|
| パスキー作成率(対象ユーザーのうち) | <10% | 10-60% | >60% |
| パスキーログイン率(全ログインのうち) | <5% | 5-40% | >40% |
3ヶ月経過後の普及率が「低い」列のような数字であれば、プロジェクトは危機的状況です。これを測定するアナリティクスがなければ、危機にあることすら気づかないでしょう。
OS やブラウザのアップデートは、プロンプト、オートフィルの挙動、フォールバックフローを変更します。継続的な監視を行っていないと、警告なしにリグレッション(機能退行)やサポートチケットが発生します。
私たちは最近、本番環境で発生した WebAuthn エラーの包括的な概要を公開しました。
サーバーが文字列を検証するだけのパスワードとは異なり、パスキーはオペレーティングシステム、ブラウザ、クレデンシャルマネージャーとの深い統合に依存しています。Apple が新しい iOS バージョンを出荷すると、パスキー作成のプロンプトの見た目が変わるかもしれません。Chrome がオートフィルロジックを更新すると、ログインフローが壊れるかもしれません。パスワードマネージャーが新バージョンをリリースすると、予期せぬ方法でパスキーリクエストへの割り込みを始めるかもしれません。
最近の例として iOS 26.2 のバグがあります。これは isUserVerifyingPlatformAuthenticatorAvailable() が Safari 以外のすべてのブラウザ(Chrome、Edge、Firefox)で false を返すというもので、回避策として getClientCapabilities() を使用したプラットフォーム認識型の検出ロジックが必要になりました。
潜在的なバグにすべて気付き、普及状況を追跡するためには、認証の可観測性(Observability)スタックをセットアップする必要があります。少なくとも以下を導入することをお勧めします。
NotAllowedError として出るなど)と、予期しないエラー(並行処理のバグによる AbortError のスパイクや、Android 更新後の新しいCredential Manager パスキーエラーなど)を区別する。これは、ほとんどのチームがインシデント発生後まで構築しないような認証アナリティクスインフラです。その頃には、ユーザーの信頼と社内プロジェクトへの信用に対するダメージはすでに発生してしまっています。
パスキー実装の真のコストは、初期構築ではありません。それは継続的なメンテナンスです。
Subscribe to our Passkeys Substack for the latest news.
これらの Day 2 問題を踏まえた上で、いつパスキーを出荷すべきで、いつ出荷すべきでないかについての正直な評価をここに記します。
適切な計画なしに規制上の理由だけで全面的に取り組むと、コストが大幅に跳ね上がる可能性があります。お粗末な実装のパスキーシステムは、パスキーシステムがない場合よりも悪質です。ユーザーの信頼を損ない、サポートのオーバーヘッドを生み出し、社内のステークホルダーにプロジェクトを中止させる理由を与えてしまいます。
この記事で説明した Day 2 問題こそが、多くの企業がパスキーインフラを自社開発するのではなく購入することを選ぶ理由です。WebAuthn サーバーの構築は簡単な部分です。数千ものデバイスの組み合わせにまたがり、適切なリカバリ、監視、普及分析を備えた実運用レベルのパスキーシステムを運用することこそが、デモと実際のデプロイメントを分ける壁なのです。
Corbado は、まさに Day 2 問題が困難であるからこそ存在しています。私たちのプラットフォームは運用の複雑さを処理するため、あなたが自分で構築・保守する必要はありません。
Corbado は、適応型セキュリティレベルを備えたリカバリフローを標準で提供します。同期パスキー戦略からクロスデバイス認証、自動化された本人確認(Identity Verification)まで対応しています。リカバリロジックは組み込まれており、継続的に更新されます。
私たちのフロントエンド SDK は、数千もの OS、ブラウザ、パスキープロバイダーの組み合わせで事前テストされています。デバイス検出、Conditional UI の処理、フォールバックルーティングは自動的に行われます。新しいブラウザバージョンで何かが壊れた場合、ユーザーが気づく前に私たちが SDK で修正します。
Corbado は、プラットフォームの違いを抽象化する SDK を使用して、ネイティブおよび WebView のパスキー実装の両方をサポートします。私たちが iOS と Android 間のパスキーの配管処理を行う間、あなたはアプリの UX に集中できます。
私たちのアナリティクスダッシュボードは、重要なあらゆる指標を追跡します。パスキー作成率、ログイン成功率、フォールバック率、デバイスレベルの内訳などです。単なる生データではなく、普及を促進するための実用的なインサイトが得られます。
Corbado は、パスキーに影響を与える OS やブラウザの変更を継続的に監視しています。SDK は先回りして更新されます。プラットフォームの状況が足元で変化しても、あなたのパスキーデプロイメントは安定したままです。
パスキーは認証のゴールドスタンダードです。そこに疑いの余地はありません。しかし、「パスキーに対応している」状態から「パスキーが大規模に安定稼働している」状態への道のりは、多くのチームが過小評価している Day 2 問題で舗装されています。
今回取り上げた5つの問題(リカバリ、クロスデバイスのエッジケース、ネイティブアプリの複雑さ、普及、プラットフォームの変更)は稀なものではありません。これらは、あらゆる本番パスキーデプロイメントにおける中核的な運用課題です。無視しても問題はなくなりません。単に、ユーザーが最初にそれを発見することになるだけです。
私の正直な推奨事項はこうです。もしパスキーを適切に行うノウハウとリソースがないのであれば、出荷しないでください。能力(プロダクト、エンジニアリング、セキュリティ、アナリティクス)に投資するか、すでにこれらの問題を解決しているパートナーと協力してください。最悪の結果は、誰も Day 2 の計画を立てていなかったために、中途半端なパスキーデプロイメントがロールバックされてしまうことです。
Related Articles
Table of Contents