このブログはこちらの英語ブログの機械翻訳です。
このチュートリアルでは、フィルター付きのイベントフックを使用して、特定のグループにユーザーが追加された場合にのみ実行される自動化を構築する方法について説明します。
ユーザーがグループに追加されたときに通知する
チュートリアルを開始する前に、イベントフックなしでどのように行うかを確認しましょう。
User Added to Groupイベントを使用する
次のフローは、Okta—User Groupに追加 イベントカードを使用して、ユーザーをグループに追加する方法を示しています。

ユーザーがグループフローに追加されました。
このソリューションは機能しますが、ユーザーが任意のグループに追加されると実行されます。特定のグループにユーザーが追加された場合にのみ実行されるフローを作成する必要があります。
フローを変更して、ユーザーが特定のグループに追加されたかどうかを確認できます。ユーザーがAutomation Learnersグループに追加されると、フローは継続されます。正確なグループでない場合は、フローを停止します。

グループチェックフローでグループに追加されたユーザー。
上記のソリューションでは、グループをチェックするための追加のロジックが必要となり、ユーザーが追加されるたびにフローが実行されるのを防ぐことはできません。
グループチェックのロジックにより、ユーザーが適切なグループに追加されない場合、フローの実行は継続されませんが、ユーザーが任意のグループに追加されるたびにフローは実行されます。
フィルター付きのイベントフックを使用すると、フローをトリガーする前にグループをチェックできます。
フィルタを使用してイベントフックを設定する
Oktaのイベントフックは、Webhookのように機能します。イベントフックを使用すると、イベントが発生したときにAPIエンドポイントを呼び出すことができます。APIエンドポイント経由でWorkflowsフローを呼び出すことができます。Oktaでイベントが発生したときにフローを実行するには、APIエンドポイントでフローを起動する機能を使用します。
フローを作成する
- Open Workflows。
- フォルダ内で新しいフローをクリックして、新しいフローを作成します。
- フロー名 に Notify user added to group と入力します。
- 説明 に This flow sends a notification when a user is added to the Automation Learners group, と入力します。他のグループ名を使用することもできます。
- フローを通過するすべてのデータを保存しますか?をチェックします。
- 保存 (Save)をクリックしてフローを作成します。
APIエンドポイントとして設定
API Endpointカードを使用すると、URLを介して呼び出されるフローを作成できます。
- [Add event(イベントを追加)]をクリックし、[Built-in triggers(組み込みトリガー)]から[API Endpoint(APIエンドポイント)]を選択します。
- API エンドポイント設定のセキュリティレベルでクライアントトークンで保護を選択します。
- 閉じる (Close)をクリックして、フローを保存します。
- API Endpointカードの下部にある<\/>をクリックします。このフローを呼び出すために使用できるURLが表示されます。
- Invoke URLのコピー (copy)をクリックします。次のステップでこのURLが必要になります。
- 閉じる (Close)をクリックします。

APIエンドポイント設定。
これでイベントフックを作成してテストするのに十分です。イベントフックを設定したら、フローの構築を完了します。
イベントフックの作成
- Okta Admin Consoleを開きます。
- Workflow > Event Hookを開きます。
- イベントフックを作成 (Create Event Hook)をクリックします。
- 前の手順のInvoke URLをEndpoint URLフィールドに貼り付けます。
- イベントフック (Event Hook) 名に New user in Automation Learners group と入力します。
- Description に、 Call a flow to notify when a user is added to the Automation Learners group と入力します。
- ページの一番下までスクロールし、[Select Events]の[User added to group]イベントを設定します。

イベントフックの設定
- Create hook & Continueをクリックします。
イベントフックにフィルターを適用する
このステップでは、フローが Automation Learners グループにユーザーが追加された場合にのみ実行されるように、イベントフックフィルターを適用します。フィルターがない場合、イベントフックはユーザーが任意のグループに追加されたときに実行されます。
- Apply filterにチェックを入れます。
- Event Hook Filtering はEarly Accessリリースです。Okta Admin ConsoleのSettings > Featuresで有効にできます。
- このステップでは、フィルタ クエリを作成します。
- target.displayName を選択フィールドのフィールド
- 値 に Automation Learners と入力します。別のグループ名を使用した場合は、ここにその名前を入力します。

Event Hookフィルター。
- Save & Continueをクリックして、次のページに進んでください。
フィルター式を直接表示または変更するには、Okta Expression Languageを使用(詳細設定)をクリックします。

イベントフックフィルターの詳細編集。
Event Hook をプレビュー
このステップで、Event Hookをプレビューおよびテストできます。
- [Event Type]から[User added to the group]イベントを選択します。
- System Log Eventのイベント(日付)を選択します。イベントがない場合、プレビューではサンプルJSONが使用されます。
- Deliver Requestをクリックして、Event Hookをテストします。Event Hookのプレビュー機能は、Event Hookフィルターをバイパスします。

イベントフックのプレビューとテスト。
- フローに戻り、実行履歴ビューを開きます。イベントフックのプレビューページからトリガーした実行が表示されます。
- Event Hookの設定に戻り、Nextをクリックします。
- エンドポイントはOkta Workflows APIエンドポイントであるため、検証する必要はありません。 後で実行をクリックします。
次のセクションでは、通知を送信するためのフローの構築を完了します。
通知フローの構築を完了する
API エンドポイントカードの本文フィールドには、ユーザーとグループに関する情報が含まれています。その情報を使用するには、最初にそれを抽出し、メッセージを作成して、メールを送信する必要があります。

API Endpointを使用したフロー。
ユーザーとグループの情報を抽出
- フローに戻り、Add function(関数の追加)をクリックします。
- [Object]カテゴリーから[Get Multiple]を選択します。[Object – Get Multiple]カードを使用すると、JSONオブジェクトから複数のキーを抽出できます。
- API Endpointのbodyフィールドを、Get Multipleカードのobjectフィールドに接続します。
- Get Multipleカードの出力エリアをクリックし、キーを入力して、ユーザーの表示名とグループの表示名をbodyフィールドから抽出します。
- data.events.0.target.0.displayName
- data.events.0.target.1.displayName
- この手順は任意です。Get Multipleカードの動作をテストできます。
- bodyフィールドの JSON をコピーします (フィールド内で、右上隅の矢印をクリックして JSON を展開します)。
- [Get Multiple]カードの▶️ボタンをクリックします。
- JSON をobjectフィールドに貼り付けます。
- 実行をクリックしてテストしてください。
- Runウィンドウの右側に、2つのキーの値が表示されます。

JSON の表示。
フローは次のようになります:

ユーザーとグループの表示名を抽出します。
メッセージを作成します
- Add functionをクリックし、Most Popularカテゴリの下にあるComposeカードを追加します。
- User:と入力し、Get Multipleカードの最初の出力フィールドを接続します。
- Group:と入力し、Get Multipleカードからの2番目の出力フィールドを接続します。
- Composeカードのアウトプットフィールドの名前を変更することをお勧めします。
- Composeの出力フィールド内で、Aa > Customizeをクリックします。
- [Display Name] に Email text と入力します。
- 保存をクリックします。
以下にフローを示します。

Composeカードの追加。
最後のステップでは、Gmail - Send Emailカードを使用してメッセージをメールで送信します。
メールメッセージを送信
- Add App Action > Gmail > Send Emailをクリックします。Gmail接続がない場合は、作成します。Google Workspaceアカウントを使用する必要があります。個人のGmailアカウントは機能しません。
- Toフィールドにメッセージを送信するメールアドレスを入力してください。
- 件名 フィールドに User added to group と入力します。
- ComposeカードのEmail textフィールドをBodyフィールドに接続します。
- 他のフィールドを非表示にするには、⚙️> Chooseフィールドをクリックします。From、CC、およびBCCフィールドのチェックを外します。保存をクリックします。
最終的なフローは次のようになります。

ユーザーがグループ フローに追加されたときに通知します。
Event Hookとフローをテストする
ユーザーをAutomation Learnersグループに追加し、フローのExecution Historyを開いて実行を検査します。イベントフックはAdd user to groupイベントで実行され、フィルター条件が一致することを確認した後、フローをトリガーします。フローはメール通知を送信します。
通知メール:

グループ通知メールにユーザーが追加されました。
次に、別のグループへの使用を追加します。イベントフックは、ユーザーをグループに追加イベントで実行されます。フィルター条件が一致しない場合、フローはトリガーされません。
Okta Workflows のリソース
🚀 Okta Workflowsは初めてですか?Okta Workflows入門ページには、開始するのに役立つすべてのリソースがあります。
📺 ビデオで学習するのが好きですか?Okta Workflowsのビデオをご覧ください。
❓質問がありますか?コミュニティオフィスアワー中に質問するか、コミュニティフォーラムに投稿するか、メールしてください。
🙋🏻♀️ コミュニティから学びたいですか?MacAdmins Slackの#okta-workflowsチャンネルに参加してください。
📖 アイデンティティ自動化についてもっと知りたいですか?Okta Learning でWorkflows トレーニングを受講する。