多要素認証機能の紹介 - 多要素認証機能の紹介 - aegif Labo Blog Liferay
null 多要素認証機能の紹介
今回はLiferay7.3から導入された多要素認証について紹介します。本機能を用いることで簡単にセキュリティを向上させることができます。 Liferayでは多要素認証に関してデフォルトで以下の機能を提供しています。
- メールワンタイムパスワード
- タイムベースワンタイムパスワード
- 特定IPアドレスから接続した際の多要素認証の省略
また、本記事では扱いませんが、Liferayをカスタマイズすることで他の多要素認証方式の追加や挙動の変更を行うこともできます。
注意事項
多要素認証を導入する際にはセキュリティが弱い部分を残さないよう、WebDAVなどの1要素形式の認証を無効にすることが強く推奨されています。WebDAVを無効にした場合、関連する各機能も同時に無効になることにご注意ください。なお、WebDAVについては過去のブログ にてご紹介しております。
使用する環境
今回はLiferay DXP 7.3.10 ga1を使用しました。
事前設定
メールワンタイムパスワードを使用するために、サーバからメールを送信できるように設定しておく必要があります。この設定を行わずに多要素認証を有効化した場合、管理者も含めた全ユーザーがシステムにアクセスできなくなってしまうためご注意ください。
また、登録電子メールアドレスが正しいことを多要素認証の有効化前に各ユーザーに確認して頂くことを推奨します。
設定方法
- 画面右上のOpen menuアイコン をクリックし、コントロールパネル→インスタンス設定→セキュリティ→多要素認証にアクセスします。
- 多要素認証:メールワンタイムパスワード設定の「有効」チェックボックスにチェックを入れ、画面最下部の更新ボタンをクリックします。
- 「IPアドレス設定」と「タイムベースワンタイムパスワード設定」の項目が表示されるので、必要に応じそれぞれの有効化やオプションの設定を行います。
- IPアドレス設定で登録したIPアドレスからの接続に対しては、多要素認証を行わずメールアドレスとパスワードのみでログインできるようになります。
- タイムベースパスワードを使用する場合、本設定に加えて各ユーザがアカウント設定からタイムベースワンタイムパスワードの設定を行う必要があります。
なお、コントロールパネル→システム設定→セキュリティにも多要素認証の項目があります。こちらは全インスタンスにおける多要素認証の使用可否を決める項目で、デフォルトでは有効になっています。 全インスタンスで多要素認証の使用を禁止したい場合にはこちらを無効化してください。
実際の挙動
多要素認証を有効にした場合の初回ログインおよびタイムベースワンタイムパスワードの設定について挙動を説明します。なお、多要素認証の設定はワンタイムパスワードとタイムベースワンタイムパスワードを有効にし、オプションは全てデフォルトとしています。 また、ログインするアカウントは管理者が作成し、仮パスワードを設定したものとしました。
- ログイン画面でメールアドレスと仮パスワードを入れ、ログインボタンを押します。
- 以下の画面が表示されるので、送信ボタンを押し、メールアドレス宛にワンタイムパスワードを送信します。
- メールアドレス宛に届いたワンタイムパスワードを入力し、申請ボタンを押します。
- 利用規約の同意、メールアドレスの有効性の確認、パスワードの変更、秘密の質問と答えの入力を行います(多要素認証を使用しない場合と同様です)。
- ホーム画面が表示されるので、右側のユーザアイコンからアカウント設定を選択します。
- 多要素認証タブに移動し、認証用アプリでQRコードの読み取り、または共有シークレットキーの入力を行います。
- 認証用アプリにはGoogle認証システムや Microsoft Authenticator などが使用できます。
- 認証用アプリに表示されるタイムベースワンタイムパスワードを入力し、申請ボタンを押します。
- 再ログインを行うとタイムベースワンタイムパスワードの入力画面が表示されます。ここに認証用アプリで表示されるタイムベースワンタイムパスワードを入力し、申請を行うことでログインが行えます。メールワンタイムパスワードも申請ボタンの下のリンクから引き続き使用できます。
各オプションについて
各オプション項目について説明します。なお、2021/01/12時点の最新版では日本語表記について一部項目に誤訳がありますので、参考のため英語表記を併記します。
多要素認証:メールワンタイムパスワード設定
- 注文 / Order
- 多要素認証チェッカーの順序を設定します。この数字が大きい順に多要素認証画面に表示されます。
- ワンタイムパスワードの長さ / One-Time Password Length
- 生成されるワンタイムパスワードの長さを設定します。
- メール再送信のタイムアウト / Resend Email Timeout
- 一度ワンタイムパスワードを送信してから再送信が可能になるまでの時間を秒単位で設定します。
- メール「差出人」フィールド用テンプレート / Template for Email "From" Field
- 後述の、メール「件名」「本文」フィールド用テンプレート中の[$FROM_ADDRESS$]に代入される内容を記載します。 デフォルトでは、Omni-adminユーザーのメールアドレスを表す変数となっています。
- 名前からメール / Email from Name
- 後述の、メール「件名」「本文」フィールド用テンプレート中の[$FROM_NAME$]に代入される内容を記載します。 デフォルトでは、Omni-adminユーザー名を表す変数となっています。
- メール「件名」フィールド用テンプレート / Template for Email "Subject" Field
- メール「本文」フィールド用テンプレート / Template for Email "Body" Field
- ワンタイムパスワードを送信する際のメール件名・本文の内容を記載します。以下の変数が使用可能です。
- [$ONE_TIME_PASSWORD$]: 生成されるワンタイムパスワード
- [$FROM_ADDRESS$]:上記項目で設定した差出メールアドレス
- [$FROM_NAME$]:上記項目で設定した差出人名
- [$TO_NAME$]:受信者の名前
- [$PORTAL_URL$]:ポータルのURL
- [$REMOTE_ADDRESS$]:送信リクエストを行ったブラウザのリモートアドレス
- [$REMOTE_HOST$]:送信リクエストを行ったブラウザのリモートホスト
- 許容される試行失敗回数を設定します / Set the number of allowed failed attempts.
- 設定した回数入力に失敗すると、以下で設定した時間パスワードの再入力を受け付けなくなります。
- 再試行タイムアウト / Retry Timeout
- 上記の回数入力に失敗した場合の、再入力を受け付けない時間を秒単位で設定します。
IPアドレス設定
- 許可するIPアドレスとネットワークマスク / Allowed IP Address and Network Mask
- ここに入力したIPアドレスとネットワークマスクからログインが試みられた場合、多要素認証を省略してログインできるようにします。
タイムベースワンタイムパスワード設定
- 注文 / Order
- 多要素認証チェッカーの順序を設定します。この数字が大きい順に多要素認証画面に表示されます。
- 許容時刻誤差(クロックスキュー) / Clock Skew
- ワンタイムパスワード生成用の時刻について、サーバー側と端末側での許容誤差範囲をミリ秒単位で設定します。 (ワンタイムパスワードの検証を現在時刻に加え、±許容時刻誤差の時刻でも行うということを意味します)
- アルゴリズムの鍵サイズ
- アルゴリズムの鍵サイズを設定します。
今回は以上となります。簡単な設定で多要素認証を導入できますので、セキュリティ向上のため是非ご使用ください。