シナリオ: このシナリオでは、割り当てを受け取ってアプリへのアクセスが必要なユーザーの手動プロビジョニングのために、カスタム拡張機能と Logic Apps を使用して ServiceNow チケットを自動的に生成する方法について説明します。
このチュートリアルでは、次のことについて説明します。
- ロジック アプリ ワークフローを既存のカタログに追加する。
- 既存のアクセス パッケージ内のポリシーにカスタム拡張機能を追加する。
- エンタイトルメント管理ワークフローを再開するために Microsoft Entra ID にアプリケーションを登録する
- Automation 認証用に ServiceNow を構成する。
- アクセス パッケージへのアクセスをエンド ユーザーとして要求する。
- 要求されたアクセス パッケージへのアクセスをエンド ユーザーとして受け取る。
前提条件
- アクティブな Azure サブスクリプションを持つ Microsoft Entra ユーザー アカウント。 アカウントをまだお持ちでない場合は、 無料でアカウントを作成できます。
- 次のいずれかの最小特権ロール: クラウド アプリケーション管理者、アプリケーション管理者、またはサービス プリンシパルの所有者。
- ローマ以上の ServiceNow インスタンス
- SSO と ServiceNow との統合。 これがまだ構成されていない場合は、続行する前に、「チュートリアル: Microsoft Entra シングル サインオン (SSO) と ServiceNow の統合 」を参照してください。
注
これらの手順を完了するときは、最小特権ロールを使用することをお勧めします。
エンタイトルメント管理のためにロジック アプリ ワークフローを既存のカタログに追加する
ロジック アプリ ワークフローを既存のカタログに追加するには、ここでロジック アプリを作成するための ARM テンプレートを使用します。
リソース グループの詳細と、ロジック アプリを関連付けるカタログ ID を指定し、購入を選択します。 新しいカタログを作成する方法の詳細については、「 エンタイトルメント管理でリソースのカタログを作成および管理する」を参照してください。
カタログが作成されたら、次の手順を実行してロジック アプリ ワークフローを追加します。
少なくとも ID ガバナンス管理者として Microsoft Entra 管理センターにサインインします。
ヒント
このタスクを完了できる他の最小特権ロールには、カタログ所有者とリソース グループ所有者があります。
左側のメニューで、[カタログ] を選択 します。
カスタム拡張機能を追加するカタログを選択し、左側のメニューで [ カスタム拡張機能] を選択します。
ヘッダー ナビゲーション バーで、[ カスタム拡張機能の追加] を選択します。
[ 基本 ] タブで、カスタム拡張機能の名前とワークフローの説明を入力します。 これらのフィールドは、カタログの [カスタム拡張機能 ] タブに表示されます。
[要求ワークフロー] として拡張機能の種類を選択し、作成中に要求されたアクセス パッケージのポリシー ステージに対応します。
拡張機能にリンクされたロジック アプリがタスクを完了し、管理者が再開アクションを送信してプロセスを続行するまで、関連付けられているアクセス パッケージ アクションを一時停止する拡張機能構成で [起動] を選択して待機します。 このプロセスの詳細については、「 エンタイトルメント管理プロセスを一時停止するカスタム拡張機能の構成」を参照してください。
前の手順でロジック アプリが既に作成されているため、[ 詳細 ] タブの [新しいロジック アプリの作成] フィールドで [いいえ] を選択します。 ただし、ロジック アプリ名と共に、Azure サブスクリプションとリソース グループの詳細を指定する必要があります。
[ 確認と作成] で、カスタム拡張機能の概要を確認し、ロジック アプリの呼び出しの詳細が正しいことを確認します。 次に、[ 作成] を選択します。
作成されると、ロジック アプリは、カスタム拡張機能ページのカスタム拡張機能の横にある ロジック アプリ でアクセスできるようになります。 これは、アクセス パッケージ ポリシーで呼び出すことができます。
ヒント
エンタイトルメント管理プロセスを一時停止するカスタム拡張機能機能の詳細については、「エンタイトルメント管理プロセスを 一時停止するカスタム拡張機能の構成」を参照してください。
既存のアクセス パッケージ内のポリシーにカスタム拡張機能を追加する
カタログでカスタム拡張機能を設定した後、管理者はポリシーを使用してアクセス パッケージを作成し、要求が承認されたときにカスタム拡張機能をトリガーできます。 これにより、特定のアクセス要件を定義し、組織のニーズに合わせてアクセス レビュー プロセスを調整できます。
少なくとも ID ガバナンス管理者として、Identity Governance ポータルで、[アクセス パッケージ] を選択します。
ヒント
このタスクを完了できる他の最小限の特権ロールには、カタログ所有者とアクセス パッケージ マネージャーがあります。
既に作成されているアクセス パッケージの一覧から、カスタム拡張機能 (ロジック アプリ) を追加するアクセス パッケージを選択します。
[ポリシー] タブに移動し、ポリシーを選択して、[ 編集] を選択します。
ポリシー設定で、[ カスタム拡張機能 ] タブに移動します。
ステージの下のメニューで、このカスタム拡張機能 (ロジック アプリ) のトリガーとして使用するアクセス パッケージ イベントを選択します。 このシナリオでは、アクセス パッケージが承認されたときにカスタム拡張機能ロジック アプリ ワークフローをトリガーするには、[ 要求が承認されました] を選択します。
注
アクセス許可が以前付与されていた期限切れの割り当てについて ServiceNow チケットを作成するには、"割り当てが削除されました" の新しいステージを追加し、LogicApp を選択します。
[カスタム拡張機能] の下のメニューで、このアクセス パッケージに追加するために上記のステップで作成したカスタム拡張機能 (ロジック アプリ) を選択します。 選択したアクションは 、when フィールド で選択されたイベントが発生したときに実行されます。
注
新しいアクセス パッケージを作成する場合は、[新しいアクセス パッケージ] を選択します。 アクセス パッケージを作成する方法の詳細については、「 エンタイトルメント管理で新しいアクセス パッケージを作成する」を参照してください。 既存のアクセス パッケージを編集する方法の詳細については、「 Microsoft Entra エンタイトルメント管理でアクセス パッケージの要求設定を変更する」を参照してください。
Microsoft Entra 管理センターでシークレットにアプリケーションを登録する
Azure では、 Azure Key Vault を使用して、パスワードなどのアプリケーション シークレットを格納できます。 Microsoft Entra 管理センター内のシークレットにアプリケーションを登録するには、次の手順に従います。
少なくとも ID ガバナンス管理者として Microsoft Entra 管理センターにサインインします。
Entra ID>App 登録に移動します。
[管理] で、[アプリの登録] > [新規登録] を選択します。
アプリケーションの表示名を入力します。
サポートされているアカウントの種類に、[この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
アプリケーションを登録したら、次の手順に従ってクライアント シークレットを追加する必要があります。
Entra ID>App 登録に移動します。
アプリケーションを選択します。
>[証明書とシークレット]>[クライアント シークレット][新しいクライアント シークレット] を選択します。
クライアント シークレットの説明を追加します。
シークレットの有効期限を選択するか、カスタムの有効期間を指定します。
[追加] を選択します。
注
アプリケーションの登録の詳細については、「 クイック スタート: Microsoft ID プラットフォームにアプリを登録する」を参照してください。
作成されたアプリケーションが MS Graph 再開 API を呼び出すのを承認するには、次の手順を実行します。
Microsoft Entra 管理センター Identity Governance - Microsoft Entra 管理センター に移動します
左側のメニューで、[カタログ] を選択 します。
カスタム拡張機能を追加したカタログを選択します。
[ロールと管理者] メニューを選択し、[+ アクセス パッケージ割り当てマネージャーの追加] を選択します。
[メンバーの選択] ダイアログ ボックスで、作成されたアプリケーションを名前またはアプリケーション ID で検索します。 アプリケーションを選択し、[選択] ボタンを選択 します。
ヒント
委任とロールの詳細については、Microsoft の公式ドキュメント「 権利管理における委任とロール」を参照してください。
Automation 認証用に ServiceNow を構成する
この時点で、ServiceNow チケットのクローズ後にエンタイトルメント管理ワークフローを再開するように ServiceNow を構成します。
- 次の手順に従って、ServiceNow Application Registry に Microsoft Entra アプリケーションを登録します。
- 次の手順に従って、System Web Service の REST API メッセージを作成します。
[System Web Services] の [REST API Messages] セクションに移動します。
[New] ボタンを選択して、新しい REST API メッセージを作成します。
すべての必須フィールドに入力します。これにはエンドポイント URL の指定を含みます:
https://learn.microsoft.com/en-us/graph/api/accesspackageassignmentrequest-resume?view=graph-rest-1.0&tabs=http
[Authentication] で [OAuth2.0] を選択し、アプリ登録プロセス中に作成された OAuth プロファイルを選択します。
[送信] ボタンを選択して変更を保存します。
[System Web Services] の [REST API Messages] セクションに戻ります。
[Http 要求] を選択し、[新規] を選択します。 名前を入力し、Http メソッドとして [POST] を選択します。
Http 要求で、次の API スキーマを使用して Http クエリ パラメーターのコンテンツを追加します。
{ "data": { "@odata.type": "#microsoft.graph.accessPackageAssignmentRequestCallbackData", "customExtensionStageInstanceDetail": "Resuming-Assignment for user", "customExtensionStageInstanceId": "${StageInstanceId}", "stage": "${Stage}" }, "source": "ServiceNow", "type": "microsoft.graph.accessPackageCustomExtensionStage.${Stage}" }
- 要求テーブル スキーマの変更: 要求テーブル スキーマを変更するには、次の図に示す 3 つのテーブルに変更を加えます。
4 列のラベルと型を文字列として追加します。
- アクセスパッケージ割り当てリクエストID (AccessPackageAssignmentRequestId)
- アクセスパッケージ割り当てステージ
- ステージインスタンスID
- EntraユーザーオブジェクトID
- Flow Designer を使用してワークフローを自動化するには、次の操作を行います。
- ServiceNow にサインインし、[Flow Designer] に移動します。
- [新規] ボタンを選択し、新しいアクションを作成します。
- 前の手順で作成した System Web Service の REST API メッセージを呼び出すアクションを追加します。
アクションのスクリプト: (前の手順で作成した列ラベルを使用してスクリプトを更新します)。
(function execute(inputs, outputs) { gs.info("AccessPackageAssignmentRequestId: " + inputs['accesspkgassignmentrequestid']); gs.info("StageInstanceId: " + inputs['customextensionstageinstanceid'] ); gs.info("Stage: " + inputs['assignmentstage']); var r = new sn_ws.RESTMessageV2('Resume ELM WorkFlow', 'RESUME'); r.setStringParameterNoEscape('AccessPackageAssignmentRequestId', inputs['accesspkgassignmentrequestid']); r.setStringParameterNoEscape('StageInstanceId', inputs['customextensionstageinstanceid'] ); r.setStringParameterNoEscape('Stage', inputs['assignmentstage']); var response = r.execute(); var responseBody = response.getBody(); var httpStatus = response.getStatusCode(); var requestBody = r.getRequestBody(); gs.info("requestBody: " + requestBody); gs.info("responseBody: " + responseBody); gs.info("httpStatus: " + httpStatus); })(inputs, outputs);
- アクションを保存します。
- [新規] ボタンを選択して、新しいフローを作成します。
- フロー名を入力し、[Run as – System User] を選択し、[submit] を選択します。
- ServiceNow 内にトリガーを作成するには、次の手順に従います。
アクセス パッケージへのアクセスをエンド ユーザーとして要求する
エンド ユーザーがアクセス パッケージへのアクセスを要求すると、要求は適切な承認者に送信されます。 承認者が承認を許可すると、エンタイトルメント管理によってロジック アプリが呼び出されます。 その後、ロジック アプリでは ServiceNow を呼び出して新しい要求/チケットが作成され、エンタイトルメント管理は ServiceNow からのコールバックを待機します。
要求されたアクセス パッケージへのアクセスをエンド ユーザーとして受け取る
IT サポート チームは、前に作成されたチケットによる必要なプロビジョニングを実行し、ServiceNow チケットを閉じます。 チケットが閉じられると、ServiceNow ではエンタイトルメント管理ワークフローを再開するための呼び出しがトリガーされます。 要求が完了すると、要求元は要求が処理されたことを示す通知をエンタイトルメント管理から受け取ります。 この合理化されたワークフローにより、アクセス要求が効率的に処理され、ユーザーに迅速に通知されるようになります。
注
チケットが 14 日以内に閉じられない場合、エンド ユーザーの MyAccess ポータルに "割り当てに失敗しました" と表示されます。
次のステップ
次の記事に進み、作成方法を確認します。