カスタムドメインでパスキーがどのように機能するか
WebAuthn Relying Party ID (RP ID)
- パスキーを使用できる場所: パスキーは、作成されたドメインに関連付けられます
- セキュリティ境界: 許可されていないドメインでパスキーが使用されるのを防ぎます
- ユーザー体験: ユーザーはカスタムドメインごとに個別にパスキーを登録する必要があります
ドメインごとの登録
login.brand1.comで登録したパスキーは、login.brand2.comでは使用できません- 異なるカスタムドメイン経由で認証するユーザーは、ドメインごとにパスキーを登録する必要があります
- 各ドメインのパスキーは独立して管理されます
パスキーのユーザーエクスペリエンスを理解する
単一ブランド、単一ドメイン
- ユーザーが
login.example.comにアクセスする - ユーザーがパスキーを登録する
- ユーザーは以後、
login.example.com経由のすべてのログインでそのパスキーを使用できる
マルチブランド、個別ドメイン
- ユーザーが
login.brand1.comにアクセスしてパスキーを登録する - 同じユーザーが後で
login.brand2.com(別ブランド) にアクセスする - 以前に登録したパスキーは使用できない
- ユーザーは
login.brand2.com用に新しいパスキーを登録する必要がある
共通ドメインを使用するマルチテナント
- ほとんどのユーザーは共通ドメイン経由で認証します
- ユーザーは共通ドメインに対して一度だけパスキーを登録します
- パスキーはほとんどの認証シナリオで一貫して利用できます
- 特殊なケース (顧客固有のドメイン) では別途登録が必要です
設定
テナントでパスキーを有効にする
- Auth0 Dashboard > Security > Multi-factor Auth に移動します
- WebAuthn with FIDO Security Keys を有効にします
- パスキー設定を構成します
パスキーのカスタムドメインを設定する
- RP ID の形式: カスタムドメイン自体 (例:
login.example.com) - 追加設定は不要: Auth0 により、検証済みの各カスタムドメインの RP ID が自動的に設定されます
RP ID 設定を確認する
- Auth0 Dashboard > ブランディング > カスタムドメイン に移動します
- カスタムドメインを選択します
- ドメインの詳細に、RP ID が表示されます
実装パターン
ドメインごとにパスキーの登録を促す
ドメインごとのパスキー登録を追跡する
ドメインごとの登録ページ
コンテキストに応じた登録プロンプト
- ユーザーが登録プロンプトを閉じたタイミングを追跡する (
localStorageに保存) - 複数回アクセスした後にプロンプトを表示するため、ユーザーメタデータの
logins_countを確認する - 現在のドメインでパスキーがまだ登録されていないことを確認する
ユーザーへの案内
ドメインごとの登録についてユーザーに案内する
“セキュリティ上、パスキーはログインポータルごとに異なります。利用するブランドごとのログインページごとに、別々にパスキーを設定する必要があります。”登録プロンプトの例:
ヘルプドキュメント
制限事項と留意点
現在の制限事項
| 制限事項 | 影響 | 回避策 |
|---|---|---|
| ドメイン間でパスキーを共有できない | ユーザーはカスタムドメインごとに個別にパスキーを登録する必要があります | 認証の大半で共通ドメインを使用するか、各ドメインで登録するようユーザーを案内してください |
| ドメイン間でパスキーを移行できない | 新しいカスタムドメインに移行する場合は再登録が必要です | 移行を慎重に計画し、ユーザーに周知したうえで、再登録フローを提供してください |
| 関連オリジン はまだサポートされていない | サブドメイン間または関連するドメイン間でパスキーを共有できません | 今後のリリースでサポート予定です。現時点ではドメインごとの登録を使用してください |
- パスキー用にドメインを「関連」として設定できるようになります
- 関連として設定されている場合、ユーザーは
login.brand1.comで登録したパスキーをlogin.brand2.comでも使用できるようになります - マルチブランド実装で、より柔軟に対応できるようになります
移行シナリオ
単一のカスタムドメインから複数のカスタムドメインへの移行
- 元のドメインを引き続き有効にする: 元のカスタムドメインを共通ドメインとして維持する
- 段階的に展開する: 新しいカスタムドメインを段階的に導入する
- ユーザーに通知する: 新しいドメインではパスキーを登録し直す必要があることをユーザーに知らせる
- 再登録フローを用意する: 新しいドメインでユーザーが簡単にパスキーを登録できるようにする
- 導入状況を監視する: ドメインごとのパスキー登録率を追跡する
「ブランド別のログインページを導入します。既存のパスキーは引き続き [original domain] でご利用いただけます。新しいログインページにアクセスすると、そちらでもよりすばやくログインできるよう、パスキーの設定を求められます。」
カスタムドメイン間の移行
old-domain.com から new-domain.com への切り替え
課題: パスキーは移行できません
移行手順:
- 並行運用: 移行期間中は両方のドメインを同時に運用します
- 登録済みパスキーの検出: 古いドメインでパスキーを登録しているユーザーを把握します
- 再登録を促す: ユーザーが新しいドメイン経由でログインした際に、パスキーの再登録を促します
- 猶予期間: 一定の移行期間は古いドメインを有効のままにします
- 古いドメインの廃止: 移行が進んだら、古いドメインを廃止します
テスト
ドメインごとのパスキー登録をテストする
- テスト用カスタムドメインを設定する: 開発テナントで複数のカスタムドメインを設定します
- 登録フローをテストする: 1 つのカスタムドメイン経由でパスキーを登録します
- 分離を確認する: そのパスキーが他のカスタムドメインでは機能しないことを確認します
- 再登録をテストする: 追加のドメインでパスキーを再登録します
- クロスブラウザテスト: 異なるブラウザーやデバイスでテストします
テストの自動化
ベストプラクティス
- 共通のドメインを使用する: パスキーの登録が必要なドメイン数を最小限に抑えるため、共通のカスタムドメインを使用します
- 明確に伝える: ドメインごとに登録が必要であることをユーザーに周知します
- 戦略的にプロンプトを表示する: ユーザーが十分に利用していることを確認してから (例: 3回以上ログインした後) 、登録プロンプトを表示します
- 登録状況を追跡する: どのユーザーがどのドメインでパスキーを登録したかを把握します
- サポートを提供する: パスキー管理に関するわかりやすいドキュメントとサポートを提供します
- 十分にテストする: 本番環境へのデプロイ前に、すべてのカスタムドメインでパスキーフローを十分にテストします
- 移行を計画する: カスタムドメインを変更する場合は、ユーザーの再登録を考慮して計画します
- 導入状況を監視する: ドメインごとのパスキーの登録率と利用率を追跡します
トラブルシューティング
カスタムドメインでパスキーが機能しない
- ユーザーが登録時とは異なるカスタムドメインを使用している
- ブラウザーの互換性の問題
- パスキーがデバイスから削除されている
- ユーザーが正しいカスタムドメインを使用していることを確認する
- ブラウザーが WebAuthn をサポートしているか確認する
- 必要に応じて、ユーザーにパスキーを再登録するよう案内する
複数回の登録にユーザーが混乱している
- パスキーはドメインごとに登録が必要であることを明確に伝える
- ユーザーがどのドメインでパスキーを登録済みかを表示する
- ユーザーが新しいドメインにアクセスした際に登録を促す