エンタイトルメント管理でカスタム拡張機能を使用して Logic Apps をトリガーする
Azure Logic Apps を使用すると、カスタム ワークフローを自動化し、アプリやサービスを 1 か所で接続できます。 ユーザーは、Logic Apps をエンタイトルメント管理と統合し、コアのエンタイトルメント管理のユース ケースを超えてガバナンス ワークフローを広げることができます。
これらの Logic Apps は、エンタイトルメント管理のユース ケース (アクセス パッケージが許可または要求されたときなど) に従って実行されるようにトリガーできます。 たとえば、管理者は、ユーザーがアクセス パッケージを要求したときに、サード パーティの SAAS アプリ (Salesforce など) の特定の特性を割り当てるか、カスタム電子メールを送信するロジック アプリがトリガーされるように、カスタム ロジック アプリを作成してエンタイトルメント管理にリンクすることができます。
Logic Apps と統合できるエンタイトルメント管理のユース ケースには次のステージがあります。 これらは、カスタム拡張機能ロジック アプリを起動できるアクセス パッケージに関連付けられているトリガーです。
アクセス パッケージの要求が作成されたとき
アクセス パッケージの要求が承認されたとき
アクセス パッケージの割り当てが許可されたとき
アクセス パッケージの割り当てが削除されたとき
アクセス パッケージの割り当ての有効期限が自動的に切れる 14 日前
アクセス パッケージの割り当ての有効期限が自動的に切れる 1 日前
Logic Apps へのこれらのトリガーは、[ルール] というアクセス パッケージ ポリシー内のタブで制御します。 また、[カタログ] ページの [カスタム拡張機能] タブには、特定のカタログに対して追加されたすべての Logic Apps の拡張機能が表示されます。 この記事では、エンタイトルメント管理でロジック アプリを作成してカタログに追加し、パッケージにアクセスする方法について説明します。
ライセンス要件
この機能を使用するには、Microsoft Entra ID Governance または Microsoft Entra スイートのライセンスが必要です。 要件に適したライセンスを見つけるには、「Microsoft Entra ID ガバナンス ライセンスの基礎」をご覧ください。
エンタイトルメント管理で使用するロジック アプリ ワークフローを作成して、カタログに追加する
ヒント
この記事の手順は、開始するポータルに応じて若干異なる場合があります。
Microsoft Entra 管理センターに Identity Governance 管理者以上としてサインインします。
ヒント
このタスクを完了できる他の最小特権ロールには、カタログ所有者とリソース グループ所有者があります。
Identity governance] (ID ガバナンス)>カタログ の順に移動します。
カスタム拡張機能を追加するカタログを選択し、左側のメニューで [Custom Extensions] (カスタム拡張機能) を選択します。
ヘッダーのナビゲーション バーで、 [カスタム拡張機能の追加] を選択します。
[基本] タブで、カスタム拡張機能の名前 (リンクするロジック アプリの名前) とワークフローの説明を入力します。 これらのフィールドは、カタログの [カスタム拡張機能] タブに表示されます。
[拡張機能の種類] タブでは、カスタム拡張機能を使用できるアクセス パッケージ ポリシーの種類を定義します。 "要求ワークフロー" の種類では、要求されたアクセス パッケージが作成されたとき、要求が承認されたとき、割り当てが許可されたとき、割り当てが削除されたときというポリシー ステージがサポートされます。 この種類では、[起動して待機] 機能もサポートされます。
有効期限前のワークフローでは、アクセス パッケージの割り当ての有効期限が切れるまで 14 日、アクセス パッケージの割り当ての有効期限が切れまで 1 日というポリシー ステージがサポートされます。 この拡張機能の種類では、[起動して待機] はサポートされていません。
[拡張機能の構成] タブでは、拡張機能に [起動して続行] または [起動して待機] の動作があるかどうかを判断できます。 [起動して続行] では、アクセス パッケージのリンクされたポリシー アクション (要求など) によって、カスタム拡張機能にアタッチされているロジック アプリがトリガーされます。 ロジック アプリがトリガーされると、アクセス パッケージに関連付けられているエンタイトルメント管理プロセスが続行されます。 [起動して待機] の場合、拡張機能にリンクされたロジック アプリがタスクを完了し、管理者が再開アクションを送信してプロセスを続行するまで、関連付けられているアクセス パッケージ アクションを一時停止します。 定義された待機期間内に応答が返されない場合、このプロセスは失敗と見なされます。 このプロセスについては、「エンタイトルメント管理プロセスを一時停止するカスタム拡張機能の構成」の個別のセクションで詳しく説明します。
[詳細] タブで、既存の従量課金プランのロジック アプリを使用するかどうかを選択します。 [新しいロジック アプリの作成] フィールドで [はい] を選択すると (既定値)、このカスタム拡張機能に既にリンクされている新しい空の従量課金プランのロジック アプリが作成されます。 いずれの場合も、次の情報を指定する必要があります。
Azure サブスクリプション。
新しいロジック アプリを作成する場合は、ロジック アプリのリソース作成アクセス許可を持つリソース グループ。
その設定を使用している場合は、[ロジック アプリの作成] を選択します。
Note
このモーダルで新しいロジック アプリを作成する場合、"/subscriptions/{SubscriptionId}/resourceGroups/{RG Name}/providers/Microsoft.Logic/workflows/{Logicapp Name}" の長さの上限は 150 文字です。
[確認と作成] では、カスタム拡張機能の概要をレビューし、ロジック アプリのコールアウトの詳細が正しいことを確認してください。 [作成] を選択します。
リンクされたロジック アプリに対するこのカスタム拡張機能が、[カタログ] の下の [カスタム拡張機能] タブに表示されるようになります。 アクセス パッケージ ポリシーでは、このカスタム拡張機能を呼び出すことが可能です。
カタログの既存のカスタム拡張機能を表示および編集する
少なくとも ID ガバナンス管理者として、前述したように、カタログ内の [カスタム拡張機能] タブに移動します。
ヒント
このタスクを完了できる他の最小特権ロールには、カタログ所有者があります。
ここでは、作成したすべてのカスタム拡張機能のほか、関連付けられているロジック アプリと、カスタム拡張機能の種類に関する情報を表示できます。
ロジック アプリ名と共に、[種類] 列には、カスタム拡張機能が新しい V2 認証モデル (2023 年 3 月 17 日以降) に作成されたか、元のモデルに作成されたかが指定されます。 カスタム拡張機能が新しいモデルに作成された場合、[種類] 列は、"割り当て要求" または "有効期限前" である構成モーダルから選択した種類と一致します。 以前のカスタム拡張機能の場合、種類には "カスタム アクセス パッケージ" と表示されます。
[トークン セキュリティ] 列には、カスタム拡張機能の作成時に使用された関連付けられた認証セキュリティ フレームワークが表示されます。 新しい V2 カスタム拡張機能では、トークン セキュリティの種類として "所有証明" (PoP) が表示されます。 以前のカスタム拡張機能では、"標準" と表示されます。
古いスタイルのカスタム拡張機能は UI から作成できなくなりましたが、既存のカスタム拡張機能は UI から新しいスタイルのカスタム拡張機能に変換できます。
古いカスタム拡張機能の行の末尾にある 3 つのドットを選択すると、カスタム拡張機能を新しい種類にすばやく更新できます。
Note
カスタム拡張機能は、使用されていない場合、または 1 つの特定の拡張機能の種類 (割り当て要求ステージまたは有効期限前ステージ) のポリシー ステージ専用に使用されている場合にのみ、新しい種類に変換できます。
カスタム拡張機能を編集することもできます。 これにより、名前、説明、その他のフィールド値を更新できます。 これを実現するには、任意のカスタム拡張機能の 3 ドット ウィンドウ内で [編集] を選択します。
古いスタイルのカスタム拡張機能は、変換されていなくても、もはや作成できなくなっている場合でも引き続き使用および編集できます。
割り当て要求と有効期限前の両方の種類のポリシー ステージで使われているために、古いスタイルのカスタム拡張機能を新しい種類に更新できない場合、更新するには、リンクされているすべてのポリシーから削除するか、1 つの種類 (割り当て要求、または有効期限前) に関連付けられたポリシー ステージにのみ使うようにする必要があります。
アクセス パッケージのポリシーにカスタム拡張機能を追加する
Microsoft Entra 管理センターに Identity Governance 管理者以上としてサインインします。
ヒント
このタスクを完了できる他の最小限の特権ロールには、カタログ所有者とアクセス パッケージ マネージャーがあります。
[Identity Governance]>[エンタイトルメント管理]>[アクセス パッケージ] の順に移動します。
既に作成されているアクセス パッケージのリストから、カスタム拡張機能 (ロジック アプリ) を追加するアクセス パッケージを選択します。
注意
新しいアクセス パッケージを作成する場合は、[新しいアクセス パッケージ] を選択します。 アクセス パッケージを作成する方法の詳細については、「エンタイトルメント管理で新しいアクセス パッケージを作成する」をご覧ください。 既存のアクセス パッケージを編集する方法の詳細については、「Microsoft Entra エンタイトルメント管理でアクセス パッケージの要求設定を変更する」を参照してください。
[ポリシー] タブに移動し、ポリシーを選択して [編集] を選択します。
ポリシー設定で、[Custom Extensions] (カスタム拡張機能) タブに移動します。
[ステージ] の下のメニューで、このカスタム拡張機能 (ロジック アプリ) のトリガーとして使用するアクセス パッケージ イベントを選択します。 たとえば、ユーザーがアクセス パッケージを要求したときにカスタム拡張機能ロジック アプリのワークフローをトリガーするだけの場合は、[要求が作成されました] を選択します。
[カスタム拡張機能] の下のメニューで、アクセス パッケージに追加するカスタム拡張機能 (ロジック アプリ) を選択します。 選択したアクションは、[タイミング] フィールドで選択したイベントが発生したときに実行されます。
既存のアクセス パッケージのポリシーに追加するには、[更新] を選択します。
リンクされたロジック アプリのワークフロー定義を編集する
カスタム拡張機能にリンクされた新しく作成されたロジック アプリの場合、これらのロジック アプリは空白から始まります。 リンクされたアクセス パッケージ ポリシー条件がトリガーされたときに拡張機能によってトリガーされるロジック アプリにワークフローを作成するには、ロジック アプリ デザイナーでロジック アプリ ワークフローの定義を編集する必要があります。 これを実現するには、以下の手順に従います。
少なくとも ID ガバナンス管理者として、前述したように、カタログ内の [カスタム拡張機能] タブに移動します。
ヒント
このタスクを完了できる他の最小特権ロールには、カタログ所有者があります。
ロジック アプリを編集するカスタム拡張機能を選択します。
関連付けられているカスタム拡張機能行の [ロジック アプリ] 列の下にある [ロジック アプリ] を選択します。 これにより、ロジック アプリ デザイナーでワークフローを編集または作成できます。
ロジック アプリ ワークフロー作成の詳細については、「クイック スタート: マルチテナント Azure Logic Apps で従量課金ワークフローの例を作成する」をご覧ください。
エンタイトルメント管理プロセスを一時停止するカスタム拡張機能の構成
カスタム拡張機能の新しい更新は、ロジック アプリが完了し、再開要求ペイロードがエンタイトルメント管理に返送されるまで、カスタム拡張機能に関連付けられているアクセス パッケージ ポリシー プロセスを一時停止する機能です。 たとえば、ロジック アプリのカスタム拡張機能がアクセス パッケージ付与ポリシーからトリガーされ、[起動して待機] が有効になっている場合、ロジック アプリがトリガーされると、ロジック アプリが完了するまで付与プロセスは再開せず、再開要求はエンタイトルメント管理に返送されます。
この一時停止プロセスにより、管理者はエンタイトルメント管理でアクセス ライフサイクル タスクを続行する前に、実行するワークフローを制御できます。 これに対する唯一の例外は、タイムアウトが発生した場合です。 [起動して待機] プロセスには、分数、時間数、または日数で示された最大 14 日間のタイムアウトが必要です。 "タイムアウト" 期間が経過するまでに再開応答がエン タイトル管理に返送されない場合、エンタイトルメント管理要求のワークフロー プロセスは一時停止します。
管理者は、ロジック アプリ ワークフローが完了したら、API 再開要求ペイロードをエンタイトルメント管理に返送できる自動化されたプロセスを構成する必要があります。 再開要求ペイロードを返送するには、グラフ API ドキュメントの指示に従います。 こちらで再開要求に関する情報をご覧ください。
具体的には、カスタム拡張機能を呼び出すためにアクセス パッケージ ポリシーが有効になっており、要求処理で顧客からのコールバックが待機されている場合、顧客は再開アクションを開始できます。 これは、requestStatus が WaitingForCallback 状態の accessPackageAssignmentRequest オブジェクトに対して実行されます。
再開要求は、次のステージに対して返送できます。
microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated
microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestApproved
microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestGranted
microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestRemoved
次のフロー図は、Logic Apps ワークフローにエンタイトルメント管理の注釈を加えたものです。
このフロー図は、次のことを示しています。
- ユーザーは、ID サービスから呼び出しを受信できるカスタム エンドポイントを作成します
- ID サービスはテスト呼び出しを行って、エンドポイントがID サービスによって呼び出し可能であることを確認します
- ユーザーは Graph API を呼び出して、アクセス パッケージにユーザーを追加するように要求します
- ID サービスがキューに追加され、バックエンド ワークフローがトリガーされます
- エンタイトルメント管理サービス要求処理は、要求ペイロードを使用してロジック アプリを呼び出します
- ワークフローでは、受け入れられたコードを想定しています
- エンタイトルメント管理サービスは、ブロックしているカスタム アクションが再開されるまで待機します
- 顧客システムは、ID サービスに対して要求再開 API を呼び出して、要求の処理を再開します
- ID サービスは、バックエンド ワークフローを再開するエンタイトルメント管理サービス キューに再開要求メッセージを追加します
- エンタイトルメント管理サービスがブロックされた状態から再開されます
再開要求ペイロードの例を次に示します。
POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/resume
Content-Type: application/json
{
"source": "Contoso.SodCheckProcess",
"type": "microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated",
"data": {
"@odata.type": "microsoft.graph.accessPackageAssignmentRequestCallbackData",
"stage": "assignmentRequestCreated",
"customExtensionStageInstanceId": "957d0c50-466b-4840-bb5b-c92cea7141ff",
"customExtensionStageInstanceDetail": "This user is all verified"
}
}
[起動して待機] を使用すると、拡張機能が "要求が作成されました" または "要求が承認されました" のアクセス パッケージ ステージにリンクされている場合、管理者は要求を拒否することもできます。 このような場合、ロジック アプリはエンタイトルメント管理に "拒否" メッセージを送信して、エンド ユーザーがアクセス パッケージを受け取る前にプロセスを終了できます。
前述のように、4 つの関連付けられたポリシー ステージを含む要求ワークフローの種類で作成されたカスタム拡張機能は、必要に応じて [起動して待機] で有効にすることができます。
コールバックを待機している要求を拒否して、アクセス パッケージの割り当て要求の処理を再開する例を次に示します。 コールアウトの assignmentRequestCreated ステージでは要求を拒否できません。
POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/9e60f18c-b2a0-4887-9da8-da2e30a39d99/resume
Content-Type: application/json
{
"source": "Contoso.SodCheckProcess",
"type": "microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated",
"data": {
"@odata.type": "microsoft.graph.accessPackageAssignmentRequestCallbackData",
"stage": "AssignmentRequestCreated",
"customExtensionStageInstanceId": "857d0c50-466b-4840-bb5b-c92cea7141ff",
"state": "denied",
"customExtensionStageInstanceDetail": "Potential risk user based on the SOD check"
}
}
拡張機能エンドユーザーのエクスペリエンス
承認者のエクスペリエンス
「エンタイトルメント管理プロセスを一時停止するカスタム拡張機能の構成」にあるペイロードで示したように、承認者は、customExtensionStageInstanceDetail
の下の再開要求ペイロードで指定された文字列を確認します。
要求元のエクスペリエンス
アクセス パッケージに起動と待機の機能を持つカスタム拡張機能があり、アクセス パッケージ要求が作成されたときにロジック アプリがトリガーされると、要求元は MyAccess の要求履歴内で要求の状態を確認できます。
カスタム拡張機能ステージに応じて、次の状態更新がユーザーに表示されます。
カスタム拡張機能ステージ | MyAccess 要求履歴で要求元に表示されるメッセージ |
---|---|
拡張機能がプロセス中の場合 | Waiting for information before proceeding (先に進む前に情報を待機しています) |
拡張機能が失敗した場合 | Process expired (プロセスの有効期限が切れています) |
拡張機能が再開された場合 | Process continues (プロセスは続行されます) |
拡張機能が再開した後の要求元からの MyAccess 要求履歴の例を次に示します。
トラブルシューティングと検証
要求に関連付けられているカスタム拡張機能の場合は、関連付けられたアクセス パッケージの要求の詳細ページ内の [要求履歴の詳細] リンクから、カスタム拡張機能 (有効になっている場合は [起動して待機]) プロセスに関する詳細を確認できます。
たとえば、ここでは、要求が送信された時刻と、[起動して待機] プロセス (コールバックの待機) が開始された時刻を確認できます。 ロジック アプリが実行され、再開要求が午後 12 時 15 分に返されると、要求は承認され、エンタイトルメント管理ステージが "再開" されました。
さらに、要求の詳細内の新しい [カスタム拡張機能インスタンス] リンクには、要求のアクセス パッケージに関連付けられているカスタム拡張機能に関する情報が表示されます。
カスタム拡張機能 ID と状態が表示されます。 この情報は、[起動して待機] コールバックが関連付けられているかどうかに基づいて変更されます。
関連付けられているロジック アプリがカスタム拡張機能により正しくトリガーされたことを確認するには、ロジック アプリのログを表示して、ロジック アプリが最後に実行された日時のタイムスタンプを確認することもできます。