案例:在此案例中,您會了解如何使用自訂擴充性和邏輯應用程式來自動產生 ServiceNow 票證,以便手動佈建已接收指派且需要應用程式存取權的使用者。
在本教學課程中,您將了解:
- 將邏輯應用程式工作流程新增至現有的目錄。
- 將自訂擴充功能新增至現有存取套件中的政策。
- 在 Microsoft Entra ID 中註冊應用程式以繼續權利管理工作流程
- 設定 ServiceNow 以進行自動化驗證。
- 以終端使用者的身分要求存取套件的權限。
- 以使用者身分接收所要求存取套件的存取權。
必要條件
- 具有有效 Azure 訂用帳戶的 Microsoft Entra 使用者帳戶。 如果您還沒有帳戶,您可以 免費建立帳戶。
- 下列其中一個最低許可權角色:雲端應用程式管理員、應用程式管理員或服務主體的擁有者。
- Rome 或更新版本的 ServiceNow 實例
- SSO 與 ServiceNow 整合。 如果尚未設定此專案,請參閱:教學課程:Microsoft Entra 單一登錄 (SSO) 與 ServiceNow 整合 ,然後再繼續。
注意
完成這些步驟時,建議使用最低權限角色。
將邏輯應用程式工作流程新增至現有目錄以進行權利管理
若要將邏輯應用程式工作流程新增至現有的類別目錄,請使用ARM範本,在此建立邏輯應用程式:
提供資源群組詳細資訊,以及目錄 ID,以將邏輯應用程式與其相關聯,然後按一下 [購買]。 如需如何建立新目錄的詳細資訊,請參閱: 在權利管理中建立和管理資源目錄。
建立目錄之後,您可以執行下列步驟來新增邏輯應用程式工作流程:
以至少身分識別控管系統管理員身分登入 Microsoft Entra 系統管理中心。
提示
可完成此工作的其他最低權限角色包括目錄擁有者和資源群組擁有者。
在左側功能表中,選取 [目錄]。
選取您要新增自定義延伸模組的目錄,然後在左側功能表中選取 [自定義擴充功能]。
在標頭導覽列中,選取 [新增自訂延伸模組]。
在 [延伸模組設定] 中選取 [啟動並等待],這會暫停相關聯的存取套件動作,直到連結至延伸模組的邏輯應用程式完成其工作後,管理員才會傳送繼續動作以繼續此流程。 如需此程式的詳細資訊,請參閱: 設定暫停權利管理程式的自定義延伸模組。
在 [ 詳細數據] 索引標籤中,選擇 [建立新的邏輯應用程式] 字段中的 [否],因為邏輯應用程式已在先前的步驟中建立。 不過,您必須提供 Azure 訂用帳戶和資源群組詳細數據,以及邏輯應用程式名稱。
在檢閱和建立中,檢閱自定義延伸模組的摘要,並確保邏輯應用程式調用的詳細資料正確無誤。 然後選取 [建立]。
建立後,可以在自訂擴充功能頁面的[邏輯應用程式]下方存取邏輯應用程式。 您可以在存取套件原則中呼叫此項目。
提示
若要深入瞭解暫停權利管理程式的自定義延伸模組功能,請參閱: 設定可暫停權利管理程式的自定義延伸模組。
將自訂擴充模組新增至現有存取套件中的策略
在目錄中設定自訂擴充性之後,系統管理員可以建立具有原則的存取套件,以便在要求獲得核准時觸發自訂延伸模組。 這讓他們能夠定義特定的存取需求,並量身打造存取權檢閱流程,以符合其組織需求。
在 [身分識別治理入口網站] 中,以至少 身分識別治理管理員 的身分,選取 [存取套件]。
提示
可完成此工作的其他最低權限角色包括目錄擁有者和存取套件管理員。
從已建立的存取套件清單中,選取您想要新增自訂延伸模組 (邏輯應用程式) 的存取套件。
變更為 [原則] 索引標籤,選取原則,然後選取 [編輯]。
在原則設定中,前往 [自訂延伸模組] 頁籤。
在 [ 階段] 下方的功能表中,選取您想要作為此自訂擴充功能(邏輯應用程式)觸發器的存取套件事件。 在我們的案例中,若要在存取套件核准後觸發自訂延伸模組的 Logic App 工作流程,請選取 [要求已核准]。
注意
要為之前授權過的已過期指派建立 ServiceNow 工單,請新增「指派已移除」階段,然後選取 LogicApp。
在 [自訂延伸模組] 下的功能表中,選取您在上述步驟中建立的自訂延伸模組 (邏輯應用程式) 以新增至此存取套件。 當[c0]欄位中選擇的事件發生時,會執行您選擇的動作。
注意
如果您想要建立新的存取套件,請選取 [新增存取套件]。 如需如何建立存取套件的詳細資訊,請參閱: 在權利管理中建立新的存取套件。 如需如何編輯現有存取套件的詳細資訊,請參閱: 在 Microsoft entra 權利管理中變更存取套件的要求設定。
在 Microsoft Entra 系統管理中心中將含有密鑰的應用程式進行註冊
透過 Azure,您可以使用 Azure Key Vault 來儲存應用程式秘密,例如密碼。 若要在 Microsoft Entra 系統管理中心中註冊包含機密的應用程式,請遵循下列步驟:
以至少身分識別治理系統管理員身分登入 Microsoft Entra 系統管理中心。
流覽至 Entra ID>應用程式註冊。
在 [管理] 底下,選取 [應用程式註冊] > [新增註冊]。
輸入應用程式的顯示名稱。
在支援的帳戶類型中,選取 [僅限此組織目錄中的帳戶]。
選擇登記。
註冊應用程式之後,您必須遵循下列步驟來新增用戶端密碼:
流覽至 Entra ID>應用程式註冊。
選取您的應用程式。
選擇證書&密碼>用戶端密碼>新用戶端密碼。
新增用戶端密鑰的描述。
選取祕密的到期日,或指定自訂存留期。
選取 [新增]。
注意
若要尋找註冊應用程式的詳細資訊,請參閱: 快速入門:在Microsoft身分識別平臺中註冊應用程式:
若要授權建立的應用程式呼叫MS Graph 履歷 API,請執行下列步驟:
流覽至 Microsoft Entra 系統管理中心 身分識別治理 - Microsoft Entra 系統管理中心
在左側功能表中,選取 [目錄]。
選取您已新增自訂延伸模組的目錄。
選取 [角色和系統管理員] 功能表,然後選取 [+ 新增存取套件指派管理員]。
在 [選取成員] 對話方塊中,搜尋依名稱或應用程式識別碼建立的應用程式。 選取應用程式,然後選擇 [選取] 按鈕。
提示
您可以在此處找到有關委派和角色的詳細資訊,請參閱這裡Microsoft的官方檔: 委派和權利管理中的角色。
設定 ServiceNow 以進行自動化驗證
此時,即應設定 ServiceNow,以便在關閉 ServiceNow 票證後恢復權限管理工作流程。
- 請遵循下列步驟,在 ServiceNow 應用程式登錄中註冊 Microsoft Entra 應用程式:
- 請依照下列步驟,建立系統 Web 服務 REST API 訊息:
移至 [系統 Web 服務] 底下的 [REST API 訊息] 區段。
選取 [新增] 按鈕以建立新的 REST API 訊息。
填寫所有必要欄位,包括提供端點 URL:
https://learn.microsoft.com/en-us/graph/api/accesspackageassignmentrequest-resume?view=graph-rest-1.0&tabs=http
針對 [驗證],選取 [OAuth2.0],然後選擇應用程式註冊流程期間建立的 OAuth 設定檔。
選取 [提交] 按鈕來儲存變更。
返回 [系統 Web 服務] 底下的 [REST API 訊息] 區段。
選取 [HTTP 要求],然後選取 [新增]。 輸入名稱,然後選取 [POST] 作為 HTTP 方法。
在 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}" }
- 修改要求資料表結構描述:若要修改要求資料表結構描述,請變更下圖所示的三個資料表:
新增四個數據行標籤,並輸入為字串:
- 存取套件指派請求 ID (AccessPackageAssignmentRequestId)
- 存取套件分配階段
- 階段實例識別碼
- Entra使用者物件ID
- 若要使用流程設計工具將工作流程自動化,請執行下列步驟:
- 登入 ServiceNow 並移至流程設計工具。
- 選取 [新增] 按鈕,然後建立新的動作。
- 新增動作,以叫用在上一個步驟中建立的系統 Web 服務 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] \(執行身分:系統使用者\),然後選取 [提交]。
- 若要在 ServiceNow 內建立觸發程序,請遵循下列步驟:
以最終使用者的身分申請存取權限包
當終端使用者要求存取套件的存取權時,該要求會傳送至適當的核准者。 核准者授與核准之後,權利管理便會呼叫邏輯應用程式。 接著,邏輯應用程式會呼叫 ServiceNow 建立新的要求/票證,而權利管理則會等候 ServiceNow 的回呼。
以終端使用者身分接收要求的存取套件
IT 支援小組會處理事先建立的票證,進行必要的調整,然後關閉該 ServiceNow 票證。 當票證關閉時,ServiceNow 會觸發一個呼叫來恢復權利管理工作流程。 要求完成之後,要求者會收到來自權利管理的通知,說明要求已完成。 此簡化的工作流程可確保有效率地完成存取要求,並即時通知使用者。
注意
如果終端使用者未在 14 天內關閉票證,則會在 MyAccess 入口網站中看到「指派失敗」。
下一步
請進入下一篇文章以了解如何建立...