WordPress でパスキー備忘録です.
結論から書くと,
プラグインで簡単にパスキー対応にできますが,プラグインを探すときは「パスキー」ではなく「WebAuthn」で探す!
とすぐに見つかります.
WP-WebAuthn を使う
上に書いた通り,プラグインを追加すれば WordPress を簡単にパスキーに対応させることができますが,検索は「WebAuthn」でしないとダメです.そして現在のところ検索すると一番最初に出てくるのは WP-WebAuthn
です.Wordpress ver. 5.0 以上 PHP 7.2 以上なら入れることはできますが,実際に動作させるにはさらに PHP に GMP 拡張モジュールを導入しなければなりません.
GMP 拡張モジュールの導入はたとえば Centos 9 Stream で PHP 等を Remi から導入していれば,
$ sudo dnf install php-gmp $ $ php -r 'phpinfo();'|grep GMP PHP Warning: Module "imagick" is already loaded in Unknown on line 0 GMP version => 6.2.0 GNU GMP support => Stanislav Malyshev
のような感じで行えますが,残念ながら docker で WordPress を導入した場合は素だと GMP モジュールには対応してないので動作させるのはかなり面倒そうなので私の場合は諦めました.
実際に導入してみると,プラグインの Setting から,認証方法を
- WebAuthn 優先
- Password優先
- WebAuthnのみ
のいずれにするか選べます.また,ログイン状態の記憶を有効にするか無効にするかや,ユーザー名なしでログインできるようにするかなども切り替えることができます.
実際に使うには,まず,公開鍵を登録する必要がありますが,この登録は,プラグインの設定画面ではなく,各ユーザーのプロファイル画面から行います.実際の流れは,
- WordPress ダッシュボード左側の「ユーザー」を選択
- ユーザー名を選択
- Registered WebAuthn Authenticators から「Register New Authenticator」を選ぶ
の順に辿るのですが,3番目のメニューがかなり下の方なので,かなり見つけにくい.
「Register New Authenticator」以後の手順は画面の誘導通りやれば良いだけです.
実際の認証画面は,
のような感じで,ユーザー名を入力して「Auth」ボタンを押せばパスキー認証を行えます.
なお,パスワード認証を実施するには,「Auth」ボタンの左位ある「リサイクル?」ボタンを押せばよいだけです.
Passwordless WP を使う
WP-WebAuthn プラグイン,使い勝手等は全く問題ないのですが,残念ながら PHP に GMP モジュールを導入しなければなりません.それで,GMP モジュールがなくても使えるパスキー対応のプラグインがないか探してみると,Passwordless WP – Login with your glance or fingerprint プラグイン
ならば動作することが分かりました.
しかし本プラグイン,
- 最終更新日が3年前とかなり古い
- 過去3回のメジャーリリースでテストされていないとの警告が出る
- WP-WebAuthn のようにいろいろ設定を変更できない
ので,PHP を GMP 対応にできるのならWP-WebAuthn を使った方が良いと思います.
Passwordless WP の公開鍵の登録は,WP-WebAuthn と同様に各ユーザーのプロファイル画面の Passwordless Login Credentials メニューから「Register New Token」を選ぶことで行えます.誘導にしたがってやるだけなので特に画面イメージ等は示しません.また,ログイン画面は,以下の通りパスキー認証とユーザー名とパスワードを用いた認証の2つが同時に表示されます.
まとめ
と言うことで,Wordpress を無事,パスキー認証に対応させることができましたが,実際にやってみると,PC の指紋センサー等でスムーズに認証が通るのが予想以上に快適で,かなり満足度が高いです.皆様にもお試しいただければと思います.
以上!