チュートリアル: Microsoft Entra エンタイトルメント管理統合を使用した ServiceNow チケットの自動作成
シナリオ: このシナリオでは、割り当てを受け取ってアプリへのアクセスが必要なユーザーの手動プロビジョニングのために、カスタム拡張機能と Logic Apps を使用して ServiceNow チケットを自動的に生成する方法について説明します。
このチュートリアルでは、次のことについて説明します。
- ロジック アプリ ワークフローを既存のカタログに追加する。
- 既存のアクセス パッケージ内のポリシーにカスタム拡張機能を追加する。
- エンタイトルメント管理ワークフローを再開するために Microsoft Entra ID にアプリケーションを登録する
- Automation 認証用に ServiceNow を構成する。
- アクセス パッケージへのアクセスをエンド ユーザーとして要求する。
- 要求されたアクセス パッケージへのアクセスをエンド ユーザーとして受け取る。
前提条件
- アクティブな Azure サブスクリプションを持つ Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 次のいずれかのロール: グローバル管理者、クラウド アプリケーション管理者、アプリケーション管理者、またはサービス プリンシパルの所有者。
- Rome 以降の ServiceNow インスタンス
- SSO と ServiceNow との統合。 まだ構成されていない場合は、続行する前に、「チュートリアル: Microsoft Entra シングル サインオン (SSO) と ServiceNow の統合」を参照してください。
Note
これらの手順を完了するときは、最小特権ロールを使用することをお勧めします。
エンタイトルメント管理のためにロジック アプリ ワークフローを既存のカタログに追加する
ロジック アプリ ワークフローは既存のカタログに追加できます。 新しいカタログを作成する方法の詳細については、「エンタイトルメント管理でリソースのカタログを作成して管理する」を参照してください。
カタログが作成されたら、次の手順を実行してロジック アプリ ワークフローを追加します。
Microsoft Entra 管理センターに Identity Governance 管理者以上としてサインインします。
ヒント
このタスクを完了できる他の最小特権ロールには、カタログ所有者とリソース グループ所有者があります。
左側のメニューで、 [カタログ] を選択します。
カスタム拡張機能を追加するカタログを選択し、左側のメニューで [Custom Extensions] (カスタム拡張機能) を選択します。
ヘッダーのナビゲーション バーで、 [カスタム拡張機能の追加] を選択します。
[基本] タブで、カスタム拡張機能の名前とワークフローの説明を入力します。 これらのフィールドは、カタログの [カスタム拡張機能] タブに表示されます。
[拡張機能の種類] で [要求ワークフロー] を選択し、作成が要求されたアクセス パッケージのポリシー ステージに対応させます。
[拡張機能の種類] で [起動して待機] を選択すると、拡張機能にリンクされたロジック アプリがタスクを完了し、管理者が再開アクションを送信してプロセスを続行するまで、関連付けられているアクセス パッケージ アクションを一時停止します。 このプロセスの詳細については、「エンタイトルメント管理プロセスを一時停止するカスタム拡張機能の構成」を参照してください。
[詳細] タブの [Create new logic App] (新しいロジック アプリの作成) フィールドで [はい] を選択します。 ロジック アプリの名前を、サブスクリプションおよびその配置先のリソース グループと共に追加します。
[確認と作成] では、カスタム拡張機能の概要を確認し、ロジック アプリとそのコールアウトの詳細が正しいことを確認してください。 それらの詳細を確認したら [作成] を選択します。
作成したロジック アプリには、[カスタム拡張機能] ページのカスタム拡張機能の横にある [ロジック アプリ] でアクセスできるようになります。 これは、アクセス パッケージ ポリシーで呼び出すことができます。
ヒント
エンタイトルメント管理プロセスを一時停止するカスタム拡張機能機能の詳細については、「エンタイトルメント管理プロセスを一時停止するカスタム拡張機能の構成」を参照してください。
既存のアクセス パッケージ内のポリシーにカスタム拡張機能を追加する
カタログでカスタム拡張機能を設定した後、管理者はポリシーを使用してアクセス パッケージを作成し、要求が承認されたときにカスタム拡張機能をトリガーできます。 これにより、特定のアクセス要件を定義し、組織のニーズに合わせてアクセス レビュー プロセスを調整できます。
ID ガバナンス ポータルで、少なくとも ID ガバナンス管理者として、[アクセス パッケージ] を選択します。
ヒント
このタスクを完了できる他の最小限の特権ロールには、カタログ所有者とアクセス パッケージ マネージャーがあります。
既に作成されているアクセス パッケージの一覧から、カスタム拡張機能 (ロジック アプリ) を追加するアクセス パッケージを選択します。
[ポリシー] タブに移動し、ポリシーを選択して [編集] を選択します。
ポリシー設定で、[Custom Extensions] (カスタム拡張機能) タブに移動します。
[ステージ] の下のメニューで、このカスタム拡張機能 (ロジック アプリ) のトリガーとして使用するアクセス パッケージ イベントを選択します。 このシナリオで、アクセス パッケージが承認されたときにカスタム拡張機能のロジック アプリ ワークフローをトリガーするには、[要求が承認されました] を選択します。
Note
アクセス許可が以前付与されていた期限切れの割り当てについて ServiceNow チケットを作成するには、"割り当てが削除されました" の新しいステージを追加し、LogicApp を選択します。
[カスタム拡張機能] の下のメニューで、このアクセス パッケージに追加するために上記のステップで作成したカスタム拡張機能 (ロジック アプリ) を選択します。 選択したアクションは、[タイミング] フィールドで選択したイベントが発生したときに実行されます。
Note
新しいアクセス パッケージを作成する場合は、[新しいアクセス パッケージ] を選択します。 アクセス パッケージを作成する方法の詳細については、「エンタイトルメント管理で新しいアクセス パッケージを作成する」をご覧ください。 既存のアクセス パッケージを編集する方法の詳細については、「Microsoft Entra エンタイトルメント管理でアクセス パッケージの要求設定を変更する」を参照してください。
Microsoft Entra 管理センターでシークレットにアプリケーションを登録する
ヒント
この記事の手順は、開始するポータルに応じて若干異なる場合があります。
Azure では、Azure Key Vault を使用して、パスワードなどのアプリケーション シークレットを格納できます。 Microsoft Entra 管理センター内のシークレットにアプリケーションを登録するには、次の手順に従います。
Microsoft Entra 管理センターに Identity Governance 管理者以上としてサインインします。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[管理] で、[アプリの登録] > [新規登録] を選択します。
アプリケーションの表示名を入力します。
サポートされているアカウントの種類に、[この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
アプリケーションを登録したら、次の手順に従ってクライアント シークレットを追加する必要があります。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
アプリケーションを選択します。
>[証明書とシークレット]>[クライアント シークレット][新しいクライアント シークレット] を選択します。
クライアント シークレットの説明を追加します。
シークレットの有効期限を選択するか、カスタムの有効期間を指定します。
[追加] を選択します。
Note
アプリケーションの登録の詳細については、「クイック スタート: Microsoft ID プラットフォームにアプリケーションを登録する」を参照してください。
作成したアプリケーションが MS Graph 再開 API を呼び出すことを承認するには、次の手順を実行します。
Microsoft Entra 管理センター Identity Governance - Microsoft Entra 管理センターに移動します
左側のメニューで、 [カタログ] を選択します。
カスタム拡張機能を追加したカタログを選択します。
[ロールと管理者] メニューを選択し、[+ アクセス パッケージ割り当てマネージャーの追加] を選択します。
[メンバーの選択] ダイアログ ボックスで、作成されたアプリケーションを名前またはアプリケーション ID で検索します。 アプリケーションを選択し、[選択] ボタンを選択 します。
ヒント
委任とロールの詳細については、Microsoft の公式ドキュメントの「エンタイトルメント管理の委任とロール」を参照してください。
Automation 認証用に ServiceNow を構成する
この時点で、ServiceNow チケットのクローズ後にエンタイトルメント管理ワークフローを再開するように ServiceNow を構成します。
- 次の手順に従って、ServiceNow Application Registry に Microsoft Entra アプリケーションを登録します。
- ServiceNow にサインインし、[Application Registry] に移動します。
- [New] を選択し、[Connect to a third party OAuth Provider] を選択します。
- アプリケーションの名前を指定し、[Default Grant type] で [Client Credentials] を選択します。
- Microsoft Entra 管理センターに Microsoft Entra アプリケーションを登録したときに生成されたクライアント名、ID、クライアント シークレット、認可 URL、トークン URL を入力します。
- アプリケーションを送信します。
- 次の手順に従って、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 プロファイルを選択します。
- [Submit] ボタンを選択して、変更を保存します。
- [System Web Services] の [REST API Messages] セクションに戻ります。
- [Http Request] を選択し、[New] を選択します。 名前を入力し、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}" }
- [Submit] を選択して変更を保存します。
- 要求テーブル スキーマの変更: 要求テーブル スキーマを変更するには、次の図に示す 3 つのテーブルに変更を加えます。 3 つの列ラベルを文字列型で追加します。
- AccessPackageAssignmentRequestId
- AccessPackageAssignmentStage
- StageInstanceId
- Flow Designer を使用してワークフローを自動化するには、次の操作を行います。
- ServiceNow にサインインし、[Flow Designer] に移動します。
- [New] ボタンを選択し、新しいアクションを作成します。
- 前の手順で作成した 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);
- アクションを保存します。
- [New] ボタンを選択して、新しいフローを作成します。
- フロー名を入力し、[Run as – System User] を選択し、[submit] を選択します。
- ServiceNow 内にトリガーを作成するには、次の手順に従います。
アクセス パッケージへのアクセスをエンド ユーザーとして要求する
エンド ユーザーがアクセス パッケージへのアクセスを要求すると、要求は適切な承認者に送信されます。 承認者が承認を許可すると、エンタイトルメント管理によってロジック アプリが呼び出されます。 その後、ロジック アプリでは ServiceNow を呼び出して新しい要求/チケットが作成され、エンタイトルメント管理は ServiceNow からのコールバックを待機します。
要求されたアクセス パッケージへのアクセスをエンド ユーザーとして受け取る
IT サポート チームは、前に作成されたチケットによる必要なプロビジョニングを実行し、ServiceNow チケットを閉じます。 チケットが閉じられると、ServiceNow ではエンタイトルメント管理ワークフローを再開するための呼び出しがトリガーされます。 要求が完了すると、要求元は要求が処理されたことを示す通知をエンタイトルメント管理から受け取ります。 この合理化されたワークフローにより、アクセス要求が効率的に処理され、ユーザーに迅速に通知されるようになります。
Note
チケットが 14 日以内に閉じられない場合、エンド ユーザーの MyAccess ポータルに "割り当てに失敗しました" と表示されます。
次のステップ
次の記事に進み、作成方法を確認します。