Magentoの新しいメジャーバージョンである2.4系が遂にリリースされました。
2.3系に比べると、大きな機能追加などが少ない印象を受けますが、いくつか新しい機能や仕様変更が行われています。

今回はその中でも管理画面の安全性を高める「2要素認証の標準有効化」について紹介したいと思います。

2要素認証とは

2要素認証とは、IDとパスワードという組み合わせの他に、もう1つ認証に用いる要素を使用する方式です。
よくみられるものとしては、

  • SMSを利用する
  • 指定した電話番号にシステムから電話をかけて、音声案内によるダイヤル操作を要求する
  • Google認証システムのようなアプリケーションと連携する

というものがあります。

Google認証システムはGithubなどでも使われているので、開発者の方にとっては馴染み深いかもしれません。

Magento2.3ですでに導入済み

実はMagento2.3系で2要素認証自体はすでに導入済みです。ただし、標準では有効になっていないので、2要素認証を使いたい場合は手動で有効化する必要があります。
詳細については「[Magento2.3新機能]reCAPTCHA/二要素認証とは」をご覧ください。

2要素認証の設定方法

2要素認証を設定する場合は、Magentoの管理画面で

店舗>設定>セキュリティ

にアクセスします。
次のような設定画面が表示されるはずです。

2要素認証の設定

図ではGoogle Authenticator(Google認証システムのことです)を選択しています。
要はこれだけで2要素認証の設定は終わりです。他の認証システムを使いたい場合は、各サービスのガイドを確認の上で設定を行ってください。「[Magento2.3新機能]reCAPTCHA/二要素認証とは」で紹介した内容と基本的に変わりはありません。

Magento2.4での注意点

Magento2.4をインストールした直後に管理画面にログインしようとすると、次のような表示になることがあります。

2要素認証を求める表示

画面のテキストにもある通り、管理者アカウントのメールアドレス宛に以下のようなメールが届きます。

admin admin,

You are required to configure website-wide and personal Two-Factor Authorization in order to login to Main Website Store
To do that please Click here

ありがとうございます、 Main Website Store

この状態は2要素認証が適切に設定されていないために起きます。解消するためには、

php bin/magento config:set twofactorauth/general/force_providers google
php bin/magento cache:clean

というようなコマンドを実行し、2要素認証の設定とキャッシュのクリアを行います。
その上でメールに示されたリンクをクリックし、2要素認証を設定すると管理画面にログインできるようになります。

Magento2.4系では管理画面にログインするたびに2要素認証を求められる

Magento2.3系では「端末を信頼する」というオプションがありました。
このオプションをログイン時に有効にしておくと、同じ端末からのログインの際には2要素認証をスキップできました。

Magento2.4系ではこのオプションが廃止されているため、管理画面にログインするたびに2要素認証を求められます。

まとめ

整理すると以下のようになります。

  • 2要素認証はMagento2.3系から利用できる。
  • Magento2.4系ではデフォルトで2要素認証が有効になっている。
  • インストール時またはインストール後に2要素認証の設定を行わないと、管理画面にログインできない。
  • Magento2.4では管理画面にログインするたびに2要素認証を求められる。

2要素認証の標準有効化に伴って、管理画面の安全性は向上しています。
反面、毎回2要素認証を求められるので、少し使い勝手としては低下しています(安全性のためには致し方ありませんが)。