CookBook

多要素認証(MFA)のバックアップコードを生成していないユーザに通知を送る方法

投稿日:2020-08-18 更新日:

この CookBook では、多要素認証のバックアップコードを生成していないユーザに通知を送る方法について紹介しています。

多要素認証では Google Authenticator を用いて認証を行いますが、端末を紛失するなどして端末が手元にない場合バックアップコードを用いてログインすることが可能です。
このバックアップコードを生成していない場合、ログインできなくなってしまうため、バックアップコードを生成していないユーザに対して生成を促すメールを送信する仕組みをご紹介します。

完成イメージ

以下の完成サンプルをダウンロードしてご活用ください。

LogicDesigner インポートファイル : im_cookbook_151802_im_logicdesigner-data.zip

レシピ

  1. SQLユーザ定義を作成します。
  2. テンプレートユーザ定義を作成します。
  3. フローを作成します。
  4. ジョブスケジューラに登録します。

1. SQLユーザ定義を作成します。

  1. 「Site map」→「LogicDesigner」→「SQL Definition Create Newly」より「SQL Definition Edit」画面を表示します。
  2. 以下のように入力します。
    項目
    User Definition ID im_cookbook_151802_user_sql
    User Definition Name Standard im_cookbook_151802_user_sql
    User Category ID im_cookbook_user
    User Category Name ユーザカテゴリ CookBook
  3. Query は以下のように入力します。

バックアップコードを生成していないユーザ(immfa_backup_cd にレコードが登録されていないユーザ)、かつ email_address1 が登録されているユーザのリストを抽出しています。

上記以外の項目はデフォルト値で構いません。

2. テンプレートユーザ定義を作成します。

  1. 「Site map」→「LogicDesigner」→「Template Definition Create Newly」より「Template Definition Edit」画面を表示します。
  2. 以下のように入力します。
    項目
    User Definition ID im_cookbook_151802_user_template
    User Definition Name Standard im_cookbook_151802_user_template
    User Category ID im_cookbook_user
    User Category Name ユーザカテゴリ CookBook
  3. Template Definition - Standard は以下のように入力します。

ここで設定した文字列がメールの本文として送信されます。

上記以外の項目はデフォルト値で構いません。

3. フローを作成します。

  1. 「Site map」→「LogicDesigner」→「Flow Definition List」→「Create new」より「Logic Flow Definition Edit」画面を表示します。
  2. 画面左側に表示されているパレットの「ユーザカテゴリ CookBook」より「im_cookbook_151802_user_sql」を配置します。
  3. 同様に、画面左側に表示されているパレットの「ユーザカテゴリ CookBook」より「im_cookbook_151802_user_template」を配置します。
  4. 画面左側に表示されているパレットの「Base」より「Loop Start」を配置します。
  5. 画面左側に表示されているパレットの「Base」より「Variable Operation」を配置します。
  6. 画面左側に表示されているパレットの「Base」より「Loop End」を配置します。
  7. 画面左側に表示されているパレットの「Generic Tasks」より「Text Mail Send」を配置します。
  8. ステップ 2 ~ 7 で配置した各タスクを、「Start」と「End」とつなげます。
  9. Variable Settings をクリックし、以下の変数を設定します。
    変数名 備考
    targets string[] メールの送信先アドレスを設定する変数です
  10. Constant Settings をクリックし、以下の定数を設定します。

    Constant ID Constant Value 備考
    from not_reply@example.com メールの送信元アドレスを設定します
    locale ja メール本文のロケールを設定します
    subject バックアップコードを生成してください メールのタイトルを設定します
  11. タスク「im_cookbook_151802_user_template1」をダブルクリックし、下図のようにマッピングを設定します。

  12. タスク「im_startLoop1」をクリックし、Loop Target に「im_cookbook_151802_user_sql1/records」を設定します。
  13. タスク「im_variableOperation1」をダブルクリックし、下図のようにマッピングを設定します。
  14. タスク「im_sendTextMail1」をダブルクリックし、下図のようにマッピングを設定します。
  15. Save をクリックし、以下のように入力します。
    入力項目 入力値
    Flow Definition Name Standard im_cookbook_151802_flow
    Flow Category ID im_cookbook_flow
    Flow Category Name フローカテゴリ CookBook

3. ジョブスケジューラに登録します。

  1. 「Site map」→「Job maintenance」→「Jobnet settings」より「Jobnet management」画面を表示します。
  2. 「Create new jobnet」をクリックします。
  3. 下表のように入力し「Add Job」をクリックします。
    入力項目 入力値
    Jobnet ID im_cookbook_151802_jobnet
    Jobnet name im_cookbook_151802_jobnet


4. 「Flow Execution」を選択し「Decide」をクリックします。

5. 「Add parameter」をクリックし、下表のように入力し、「Insert new」をクリックします。

入力項目 入力値
flow_id im_cookbook_151802_flow


6. 「Hour specification」を選択し、「12」を入力し「Decide」をクリックします。

7. 「Available」をチェックし、「Newly Create」をクリックして、ジョブネットを作成します。

これで、毎日 12 時にジョブが実行され、フローが実行されます。
ジョブスケジューラから LogicDesigner を呼び出す詳細についてはジョブを利用したロジックフローの実行を参照してください。

このように、LogicDesigner/ジョブスケジューラ を利用することで、定期的にバックアップコードを生成していないユーザに対して通知を送ることが可能です。
是非ご活用ください。

-CookBook

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

OAuth2.0 の アクセストークンを Google から取得する方法

このクックブックでは、OAuth2.0 の アクセストークンを Google から取得する方法を説明します。 intra-mart Accel Platformでは、OAuth2.0 の アクセストー …

no image

CookBookからダウンロードしてきたプロジェクトのインポート方法

このCookBookでは、他のCookBookからダウンロードしてきたe Builderのモジュール・プロジェクトのインポートについて紹介しています。 プロジェクトをインポートし、プロジェクトの設定を …

no image

Resin の Docker を作成する。

この CookBook では、Resin の Docker の作成手順について紹介しています。 レシピ ベースイメージの作成 Resin の Docker イメージを作成します 実行します 1. ベー …

no image

IM-FormaDesignerで作成したフォーム内で、外部連携を利用して最も簡単に値を渡す方法(テーブルアイテム編)

このCookBookでは、IM-FormaDesignerで作成したフォーム画面の中で、テーブルアイテムからテーブルアイテムへ値を渡す方法について紹介します。 今回は例として、グリッドテーブルを利用し …

ワークフローの一覧を使い分けるには(スマートフォン版)

このCookbookでは、以前に公開した「ワークフローの一覧を使い分けるには(改訂版)」に関して、お問い合わせいただいた内容を追加してスマートフォン画面でワークフローの一覧の検索条件を付与する方法をご …

RSSRSSRSSRSS