Skip to main content
パスキー は、WebAuthn を使用して、フィッシング耐性のあるパスワードレス認証を提供します。複数のカスタムドメイン を使用する場合、WebAuthn のセキュリティモデルにより、パスキーはドメインごとに登録されます。

カスタムドメインでのパスキーの仕組み

WebAuthn Relying Party ID (RP ID)

WebAuthn では、パスキーの資格情報の利用範囲を定めるために Relying Party Identifier (RP ID) を使用します。RP ID によって、次の点が決まります。
  • パスキーを使用できる場所: パスキーは作成されたドメインに紐づけられます
  • セキュリティ上の境界: 許可されていないドメインでパスキーが使用されるのを防ぎます
  • ユーザーエクスペリエンス: ユーザーはカスタムドメインごとに個別にパスキーを登録する必要があります

ドメインごとの登録

複数のカスタムドメインを使用する場合、各ドメインはそれぞれ固有の RP ID を持つため、次のようになります。
  • login.brand1.com で登録したパスキーは、login.brand2.com では使用できません
  • 異なるカスタムドメイン経由で認証するユーザーは、ドメインごとにパスキーを登録する必要があります
  • 各ドメインのパスキーはそれぞれ独立して管理されます

パスキーのユーザーエクスペリエンスを理解する

単一ブランド、単一ドメイン

設定: 1 つのカスタムドメインで 1 つのブランドに対応 ユーザーエクスペリエンス:
  1. ユーザーが login.example.com にアクセスする
  2. ユーザーがパスキーを登録する
  3. 以後、login.example.com 経由のすべてのログインでそのパスキーを使用できる
複雑度: 低 - シンプルなパスキー利用体験

マルチブランド、別々のドメイン

設定: 複数のブランドがあり、それぞれ独自のカスタムドメインを使用する ユーザー体験:
  1. ユーザーが login.brand1.com にアクセスしてパスキーを登録する
  2. その後、同じユーザーが login.brand2.com (別ブランド) にアクセスする
  3. 以前に登録したパスキーは利用できない
  4. ユーザーは login.brand2.com 用に新しいパスキーを登録する必要がある
複雑さ: 中程度 - ユーザーはブランドごとに別々のパスキーを登録する必要がある ベストプラクティス: ブランドごとに別々のパスキー登録が必要であることをユーザーに伝える

共通ドメインを使うマルチテナント

設定: 複数の顧客があり、共有サービス向けに共通のカスタムドメインを使用します。 ユーザー体験:
  1. ほとんどのユーザーは共通ドメイン経由で認証します
  2. ユーザーは共通ドメイン用のパスキーを一度登録するだけで済みます
  3. パスキーはほとんどの認証パターンで一貫して利用できます
  4. 特別なケース (顧客固有のドメイン) では、別途登録が必要です
複雑さ: 低~中 - ほとんどのユーザーは一貫した体験を得られます

設定

テナントでパスキーを有効にする

カスタムドメインでパスキーを使用する前に、パスキーが有効になっていることを確認してください。
  1. Auth0 Dashboard > Security > Multi-factor Auth に移動します
  2. WebAuthn with FIDO Security Keys を有効にします
  3. パスキーの設定を行います

パスキー用のカスタムドメインを設定する

各カスタムドメインには、自動的に固有の RP ID が設定されます。
  • RP ID の形式: カスタムドメイン自体 (例: login.example.com)
  • 追加設定は不要: Auth0 により、検証済みの各カスタムドメインに RP ID が自動的に設定されます

RP ID の設定を確認する

カスタムドメインの RP ID を確認するには、次の手順を実行します。
  1. Auth0 Dashboard > ブランディング > カスタムドメイン に移動します
  2. 対象のカスタムドメインを選択します
  3. ドメインの詳細画面に RP ID が表示されます

実装パターン

ドメインごとにパスキー登録を促す

ユーザーが使用する各カスタムドメインごとにパスキーを登録できるよう案内します。

ドメインごとのパスキー登録を管理する

ユーザーがどのドメインでパスキーを登録しているかを記録します:
次に、アプリケーション内で:

ドメインごとの登録ページ

各カスタムドメイン専用の登録ページを作成します。

コンテキストに応じた登録プロンプト

ユーザーの行動に応じて、パスキーの登録プロンプトを表示します。主なポイント:
  • ユーザーが登録プロンプトを閉じたかどうかを追跡する (localStorage に保存)
  • 複数回アクセスした後にプロンプトを表示するため、ユーザーのメタデータにある logins_count を確認する
  • 現在のドメインですでにパスキーが登録されていないことを確認する

ユーザーとのコミュニケーション

ドメインごとの登録についてユーザーに伝える

パスキーはドメインごとに異なることを、ユーザーに明確に伝えてください。 メッセージ例
“セキュリティ上、パスキーはログインポータルごとに異なります。利用する各ブランドのログインページごとに、個別にパスキーを設定する必要があります。”
登録画面の例

ヘルプドキュメント

わかりやすいヘルプドキュメントを用意しましょう。 FAQ の例: Q: なぜパスキーをもう一度設定する必要があるのですか? A: セキュリティ上、パスキーは特定のドメインに紐づいています。別のポータル (例: Brand A と Brand B) からログインする場合は、それぞれでパスキーを設定する必要があります。これにより、パスキーは本来利用すべき場所でのみ機能し、アカウントの安全性が保たれます。 Q: パスキーごとに別のデバイスが必要ですか? A: いいえ。異なるドメインのパスキーでも、同じデバイス (スマートフォン、コンピューター、またはハードウェアキー) を使用できます。各パスキーは、デバイスに保存される個別の認証情報にすぎません。

制限事項と留意点

現在の制限事項

制限事項影響回避策
ドメインをまたいでパスキーを共有できませんユーザーは各カスタムドメインごとに個別にパスキーを登録する必要があります認証の大半では共通ドメインを使用するか、各ドメインで登録するようユーザーに案内してください
ドメイン間でパスキーを移行できません新しいカスタムドメインに移行する際は再登録が必要です移行を慎重に計画し、ユーザーに周知したうえで、再登録フローを提供してください
関連オリジンはまだサポートされていませんサブドメイン間または関連するドメイン間でパスキーを共有できません今後のリリースで対応予定です。現時点ではドメインごとの登録を使用してください
Auth0 は、指定したドメイン間でパスキーを共有できるようにする WebAuthn の関連オリジンのサポートを予定しています。この機能では、次のことが可能になります。
  • パスキー用にドメインを「関連」として設定できるようになります
  • 関連として設定されていれば、ユーザーは login.brand1.com で登録したパスキーを login.brand2.com でも使用できるようになります
  • マルチブランド実装で、より柔軟に運用できるようになります
ステータス: GA 後のリリースで提供予定

移行パターン

単一のカスタムドメインから複数のカスタムドメインへの移行

Before: パスキーが登録済みの単一のカスタムドメイン After: ブランドごとに異なる複数のカスタムドメイン 課題: 既存のパスキーは元のドメインでしか利用できない 移行アプローチ:
  1. 元のドメインを有効なまま維持する: 元のカスタムドメインを共通ドメインとして維持する
  2. 段階的に展開する: 新しいカスタムドメインを少しずつ導入する
  3. ユーザーに通知する: 新しいドメインではパスキーの登録が必要になることをユーザーに知らせる
  4. 再登録フローを提供する: 新しいドメインでもユーザーが簡単にパスキーを登録できるようにする
  5. 導入状況を確認する: ドメインごとのパスキー登録率を追跡する
通知テンプレート:
「ブランドごとのログインページを導入します。既存のパスキーは引き続き [original domain] でご利用いただけます。新しいログインページにアクセスした際は、そちらでもよりすばやくログインできるよう、パスキーの設定が求められます。」

カスタムドメイン間の移行

シナリオ: old-domain.com から new-domain.com への変更 課題: パスキーは移行できません 移行手順:
  1. 並行運用: 移行期間中は両方のドメインを同時に運用する
  2. 登録済みパスキーの把握: 旧ドメインでパスキーを登録しているユーザーを追跡する
  3. 再登録を促す: ユーザーが新しいドメイン経由でログインした際に、パスキーの再登録を促す
  4. 猶予期間: 移行期間中は旧ドメインを引き続き有効にしておく
  5. 旧ドメインの廃止: 利用が定着したら、旧ドメインを廃止する

テスト

ドメインごとのパスキー登録をテストする

  1. テスト用のカスタムドメインを設定する: 開発用テナントで複数のカスタムドメインを設定します
  2. 登録フローをテストする: 1 つのカスタムドメイン経由でパスキーを登録します
  3. 分離を確認する: そのパスキーが他のカスタムドメインでは使えないことを確認します
  4. 再登録をテストする: 追加のドメインでパスキーを登録します
  5. クロスブラウザテスト: 異なるブラウザーやデバイスでテストします

自動テスト

ベストプラクティス

  1. 共通ドメインを使用する: パスキー登録が必要なドメイン数を最小限に抑えるため、共通のカスタムドメインを使用します
  2. 明確に伝える: ドメインごとに登録が必要であることをユーザーに周知します
  3. 戦略的に案内する: ユーザーが継続利用していることを確認してから登録の案内を表示します (例: 3回以上ログインした後)
  4. 登録状況を把握する: どのユーザーがどのドメインでパスキーを登録したかを把握します
  5. サポートを提供する: パスキー管理に関する分かりやすいドキュメントとサポートを提供します
  6. 十分にテストする: 本番デプロイ前に、すべてのカスタムドメインでパスキーフローを十分にテストします
  7. 移行を計画する: カスタムドメインを変更する場合は、ユーザーによる再登録を考慮して計画します
  8. 導入状況を監視する: ドメインごとのパスキー登録率と利用率を追跡します

トラブルシューティング

カスタムドメインでPasskeyが機能しない

症状: ユーザーはパスキーを登録済みだが、使用できない 考えられる原因:
  • ユーザーが登録時とは異なるカスタムドメインを使用している
  • ブラウザーの互換性の問題
  • パスキーがデバイスから削除されている
解決方法:
  1. ユーザーが正しいカスタムドメインを使用していることを確認する
  2. ブラウザーがWebAuthnをサポートしているか確認する
  3. 必要に応じて、ユーザーにパスキーを再登録してもらう

複数の登録に関してユーザーが混乱している

症状: ドメインを切り替えると、「パスキーが機能しない」という報告がユーザーからある 原因: ユーザーがドメインごとの登録を理解していない 解決策:
  1. ドメインごとのパスキーについて明確に案内する
  2. ユーザーがどのドメインでパスキーを登録済みか表示する
  3. ユーザーが新しいドメインを訪れた際に登録を促す

詳細はこちら