自社サービスでパスキー認証機能を実装したけど、どこまでをサポート対象とするべきかよくわからなかったので、実際に動作確認してみた。
パスキーのキープロバイダーはパスワードマネージャーになるため、「ブラウザごと」だけじゃなく「パスワードマネージャーとの組み合わせ」によっても挙動が変わる。そのため、各組み合わせで確認した。
1Passwordなどのパスワードマネージャーは、公式のブラウザ拡張を入れて確認している。他にも Dashlane, Proton, Keeper, KeePassXC あたりもパスキー対応していそうだけど、利用シェアが少なそうだったので今回は対象外。
確認対象は、自社で開発しているサービスなので、実装側の問題でうまく動かないケースもあり得る。そこで、NGだった組み合わせは passkeys-demo でも再確認した。
キープロバイダー | Chrome | Firefox | Safari | Edge | 補足 |
---|---|---|---|---|---|
Windows Hello (Windows) | ✅ | ✅ | N/A | ✅ | |
iCloud Keychain (macOS) | ✅ | ✅ | ✅ | N/A | |
Google Password Manager | ✅ | N/A | N/A | N/A | macOSでのChromeで確認した |
Google Chrome Profile | ✅ | N/A | N/A | N/A | macOSでのChromeで確認した |
1Password | ✅ | ✅ | ✅ | ✅ (*4) | ドメインが重複しても登録できてしまうので使い勝手が悪い |
LastPass | ❌ (*1) | ❌ | - | - | そもそもベータ版の機能で動かなかったのでSafariからは調査せず |
BitWarden | ✅ | ✅ | ❌ (*2) | ✅ (*3) | ドメインが重複していたら確認が出る。使い勝手が良い |
- *1 https://passkeys-demo.appspot.com/home でも動かない。ベータ機能を有効にして追加のUser Verificationもオンにしたけどダメ。どのサイトだと動くんだろう?
- *2 Safari + BitWardenはパスキーautofillも登録も不可。https://passkeys-demo.appspot.com/home でも動かない。念のため Nulab でも確認したが結果は同じ。
- *3 「フォームフィールドに自動入力の候補を表示」のオプションがデフォルトで無効ログインフォームに何も出ない。オプションを有効にしたらOKだった。Edge の拡張だけデフォルト無効で、それ以外のブラウザ拡張はデフォルト有効。なんだそりゃ
- *4 登録直後の認証テストでは 1Password 拡張が反応せず失敗したけど、リロードしたら成功した
感想
OS/ブラウザ組み込みのキープロバイダーはちゃんと動作していて安心感があった。だけど、独立系パスワードマネージャーは対応にムラがある印象。1Password がしっかりしていたのは、会社にリソースの余裕があるからだったりするのかもしれない。