この CookBook では、多要素認証のバックアップコードを生成していないユーザに通知を送る方法について紹介しています。
多要素認証では Google Authenticator を用いて認証を行いますが、端末を紛失するなどして端末が手元にない場合バックアップコードを用いてログインすることが可能です。
このバックアップコードを生成していない場合、ログインできなくなってしまうため、バックアップコードを生成していないユーザに対して生成を促すメールを送信する仕組みをご紹介します。
完成イメージ
以下の完成サンプルをダウンロードしてご活用ください。
LogicDesigner インポートファイル : im_cookbook_151802_im_logicdesigner-data.zip
レシピ
- SQLユーザ定義を作成します。
- テンプレートユーザ定義を作成します。
- フローを作成します。
- ジョブスケジューラに登録します。
1. SQLユーザ定義を作成します。
- 「Site map」→「LogicDesigner」→「SQL Definition Create Newly」より「SQL Definition Edit」画面を表示します。
- 以下のように入力します。
項目 値 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 -
Query は以下のように入力します。
1 2 3 |
SELECT usr.user_cd, usr.user_name, usr.email_address1 FROM imm_user AS usr LEFT JOIN (SELECT DISTINCT user_cd FROM immfa_backup_cd) bk ON (usr.user_cd = bk.user_cd) WHERE bk.user_cd IS NULL AND usr.start_date now() AND usr.locale_id = 'ja' AND usr.delete_flag = '0' AND usr.email_address1 IS NOT NULL |
バックアップコードを生成していないユーザ(immfa_backup_cd にレコードが登録されていないユーザ)、かつ email_address1 が登録されているユーザのリストを抽出しています。
上記以外の項目はデフォルト値で構いません。
2. テンプレートユーザ定義を作成します。
- 「Site map」→「LogicDesigner」→「Template Definition Create Newly」より「Template Definition Edit」画面を表示します。
- 以下のように入力します。
項目 値 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 -
Template Definition - Standard は以下のように入力します。
1 2 3 4 |
<#setting url_escaping_charset="UTF-8"> バックアップコードを作成していないユーザに対してメールを送信しています。 以下の手順に従い、バックアップコードを生成し、保管してください。 https://www.intra-mart.jp/document/library/iap/public/operation/user_guide/texts/apply_guide/apply_guide_9.html#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B |
ここで設定した文字列がメールの本文として送信されます。
上記以外の項目はデフォルト値で構いません。
3. フローを作成します。
- 「Site map」→「LogicDesigner」→「Flow Definition List」→「Create new」より「Logic Flow Definition Edit」画面を表示します。
- 画面左側に表示されているパレットの「ユーザカテゴリ CookBook」より「im_cookbook_151802_user_sql」を配置します。
- 同様に、画面左側に表示されているパレットの「ユーザカテゴリ CookBook」より「im_cookbook_151802_user_template」を配置します。
- 画面左側に表示されているパレットの「Base」より「Loop Start」を配置します。
- 画面左側に表示されているパレットの「Base」より「Variable Operation」を配置します。
- 画面左側に表示されているパレットの「Base」より「Loop End」を配置します。
- 画面左側に表示されているパレットの「Generic Tasks」より「Text Mail Send」を配置します。
- ステップ 2 ~ 7 で配置した各タスクを、「Start」と「End」とつなげます。
- Variable Settings をクリックし、以下の変数を設定します。
変数名 型 備考 targets string[] メールの送信先アドレスを設定する変数です -
Constant Settings をクリックし、以下の定数を設定します。
Constant ID Constant Value 備考 from not_reply@example.com メールの送信元アドレスを設定します locale ja メール本文のロケールを設定します subject バックアップコードを生成してください メールのタイトルを設定します -
タスク「im_cookbook_151802_user_template1」をダブルクリックし、下図のようにマッピングを設定します。
- タスク「im_startLoop1」をクリックし、Loop Target に「im_cookbook_151802_user_sql1/records」を設定します。
- タスク「im_variableOperation1」をダブルクリックし、下図のようにマッピングを設定します。
- タスク「im_sendTextMail1」をダブルクリックし、下図のようにマッピングを設定します。
- Save をクリックし、以下のように入力します。
入力項目 入力値 Flow Definition Name Standard im_cookbook_151802_flow Flow Category ID im_cookbook_flow Flow Category Name フローカテゴリ CookBook
3. ジョブスケジューラに登録します。
- 「Site map」→「Job maintenance」→「Jobnet settings」より「Jobnet management」画面を表示します。
- 「Create new jobnet」をクリックします。
- 下表のように入力し「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/ジョブスケジューラ を利用することで、定期的にバックアップコードを生成していないユーザに対して通知を送ることが可能です。
是非ご活用ください。