【iDempiere Lab】多要素認証(MFA : Multi Factor Authentication)

オープンソースのERP iDempiereのVer8.2で、多要素認証(Multi Factor Authentication)が実装されたので調査及び研究し、その成果をまとめてみました。

【補足説明】Wiki : 多要素認証

多要素認証(たようそにんしょう、英語: Multi-Factor Authentication、英: MFA)は、アクセス権限を得るのに必要な本人確認のための複数の種類の要素(証拠)をユーザーに要求する認証方式である

iDempiereに実装されている多要素認証

現時点で、iDempiereは次の2つの多要素認証が実装されています。

  • TOTP (Google Auth, Authy, etc) … ログイン時にワンタイムパスワードを入力します。Time-Based One-Time Password
  • EMail … ログイン時に、メールで届くバリデーションコードを入力します。

 

多要素認証のメニュー

2021年7月現在で、下記のメニューでTOTPとEMailによる多要素認証の設定ができるようになっています。

TOTP(Time-Based One-Time Password)

ここからは、TOTPをワンタイムパスワードと言って行きたいと思います。ログイン時にワンタイムパスワードを要求する事で、ログインの安全性を高める事ができます。

準備

ワンタイムパスワードを生成するアプリケーションを用意する必要があります。

ここでは、「Google 認証システム」をアンドロイドのスマホにインストールしている前提で説明します。

 

多要素認証の登録

Google 認証システム」をスマホにインストールしてたら、iDempiereにログインして「多要素認証の登録」を行います。

◆多要素認証方法

TOTP」を選択して下さい。

◆多要素認証パラメーターエレメント

名称」が自動設定されます。

◆パラメーター値

これから登録する多要素認証の情報を識別するためにわかりやすい名称を自由に入力して下さい。

プロセスを実行すると、下記のようなポップアップ画面が表示されます。

スマホにインストールした「Google 認証システム」を起動して、画面に表示されているQRコードを撮影して下さい。それだけで、ワンタイムパスワードとして使用するバリデーションコードを発行してくれるようになります。

バリデーションコードをポップアップウィンドウに入力してOKボタンを押すと、多要素認証の設定が登録され有効化されます。

有効化は、後日でも大丈夫です。有効化を別途行いたい場合は「多要素認証の登録を完了する」プロセスを実行して下さい。

登録した多要素認証の情報は、「多要素認証の登録情報」ウィンドウで確認する事ができます。このウィンドウは確認が主で、追加で設定を行うような必要はありません。

ワンタイムパスワードによる多要素認証の設定は、これで終了で、とても簡単です。

 

ログイン

通常通りログインして下さい。

そうすると、バリデーションコードの入力が求められる画面が表示されます。スマホの「Google 認証システム」を確認してバリデーションコードを入力して下さい。

◆多要素認証済みの端末に〇〇日間登録する

このフラグをONにすると利用している端末からのログインにおいては、バリデーションコードの入力が〇〇日間不要になります。何日間入力不要にするかはシステムコンフィグ設定の「MFA_REGISTERED_DEVICE_EXPIRATION_DAYS」で設定できるようになっています。初期値は30日です。

Eメールを使った多要素認証

ここからはEメールを使った多要素認証について説明します。

事前準備

iDempiereからメールが送信できる状態になっている必要があります。クライアントの設定でメールを送信できるようにセットアップしておいて下さい。

多要素認証の登録

OKボタンを押してプロセスを実行すると、パラメーター値に登録したメールアドレスにバリデーションコードが届きますので、表示される下記のポップアップウィンドウに入力します。

以上で、登録は完了です。「多要素認証の登録情報」ウィンドウで確認できます。

 

ログイン

通常通りログインして下さい。

そして、下記の画面に遷移しあら、OKボタンを押して下さい。

そうすると、バリデーションコードが入ったメールが送信されますので、バリデーションコードを入力して下さい。

参考サイト