教程:通过 Microsoft Entra 权利管理集成来自动执行 ServiceNow 票证创建

方案:在此方案中,你将了解如何使用自定义扩展性和逻辑应用自动生成 ServiceNow 票证,以便手动预配已收到分配且需要访问应用的用户。

在本教程中,你将了解如何执行以下操作:

  • 将逻辑应用工作流添加到现有目录。
  • 将自定义扩展添加到现有访问包中的策略。
  • 在 Microsoft Entra ID 中注册应用程序以继续执行权利管理工作流
  • 配置 ServiceNow 以进行自动化身份验证。
  • 以最终用户身份请求获取访问包。
  • 以最终用户身份接收对请求的访问包的访问权限。

先决条件

注意

建议在完成这些步骤时使用最低特权角色。

将逻辑应用工作流添加到权利管理的现有目录

若要将逻辑应用工作流添加到现有目录,请使用 ARM 模板来创建逻辑应用:

部署到 Azure

逻辑应用 ARM 模板的屏幕截图。

提供 Azure 订阅、资源组详细信息,以及逻辑应用名称和目录 ID,以便关联逻辑应用并选择购买。 有关如何创建新目录的详细信息,请参阅:在权利管理中创建和管理资源目录

  1. 至少以标识治理管理员的角色导航到 Microsoft Entra 管理中心 标识治理 - Microsoft Entra 管理中心

    提示

    可以完成此任务的其他最低特权角色包括目录所有者和资源组所有者。

  2. 在左侧菜单中,选择“目录”。

  3. 选择要为其添加自定义扩展的目录,然后在左侧菜单中选择“自定义扩展”。

  4. 在标题导航栏中,选择“添加自定义扩展”。

  5. 在“基本信息”选项卡中,输入自定义扩展的名称以及工作流的说明。 这些字段将显示在“目录”页面的“自定义扩展”选项卡中。 为权利管理创建自定义扩展的屏幕截图。

  6. 选择“扩展类型”为“请求工作流”,以与所创建请求的访问包的策略阶段相对应。 权利管理自定义扩展行为操作选项卡的屏幕截图。

  7. 在“扩展配置”中选择“启动并等待”,将暂停关联的访问包操作,直到与扩展关联的逻辑应用完成其任务且管理员发送恢复操作,然后该过程才会继续。 有关此过程的详细信息,请参阅:配置可暂停权利管理过程的自定义扩展

  8. 在“详细信息”选项卡的“创建新的逻辑应用”字段中选择“否”,因为在前面的步骤中已经创建了逻辑应用。 但是,需要提供 Azure 订阅和资源组详细信息以及逻辑应用名称。 权利管理自定义扩展详细信息选项卡的屏幕截图。

  9. 在“审阅并创建”中,查看自定义扩展的摘要,确保逻辑应用标注详细信息正确无误。 然后选择“创建”。

  10. 所关联逻辑应用的此自定义扩展现在会显示在“目录”下的“自定义扩展”选项卡中。 你可以在访问包策略中调用该扩展。

提示

若要详细了解可暂停权利管理过程的自定义扩展功能,请参阅:配置可暂停权利管理过程的自定义扩展

将自定义扩展添加到现有访问包中的策略

在目录中设置自定义扩展性后,管理员可以创建一个访问包以及在请求获得批准后触发自定义扩展的策略。 这样管理员可以定义特定的访问要求,并定制访问评审过程以满足其组织的需求。

  1. 在至少以标识治理管理员身份登录的标识治理门户中,选择“访问包”。

    提示

    可以完成此任务的其他最低特权角色包括目录所有者和访问包管理者。

  2. 从已创建的访问包列表中选择要将自定义扩展(逻辑应用)添加到的访问包。

  3. 切换到策略选项卡,选择该策略并选择“编辑”。

  4. 在策略设置中,转到“自定义扩展”选项卡。

  5. 在“阶段”下方的菜单中,选择要用作此自定义扩展(逻辑应用)的触发器的访问包事件。 对于我们的方案,若要在访问包获得批准后触发自定义扩展逻辑应用工作流,请选择“请求被批准”。

注意

若要为之前授予过权限的到期分配创建 ServiceNow 票证,请添加新阶段“分配被删除”,然后选择逻辑应用。

  1. 在“自定义扩展”下方的菜单中,选择在上述步骤中创建的要添加到此访问包的自定义扩展(逻辑应用)。 当在“何时”字段中选择的事件发生时,将执行你选择的操作。

  2. 选择“更新”以将其添加到现有访问包的策略。 访问包的自定义扩展详细信息的屏幕截图。

注意

如果你希望创建新的访问包,请选择“新建访问包”。 有关如何创建访问包的详细信息,请参阅:在权利管理中创建新的访问包。 有关如何编辑现有访问包的详细信息,请参阅:在 Microsoft Entra 权利管理中更改访问包的请求设置

在 Microsoft Entra 管理中心内注册带机密的应用程序

提示

本文中的步骤可能因开始使用的门户而略有不同。

借助 Azure,可以使用 Azure Key Vault 来存储应用程序机密,例如密码。 要在 Microsoft Entra 管理中心内注册带机密的应用程序,请执行以下步骤:

  1. 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“应用注册”。

  3. 在“管理”下,选择“应用注册”>“新建注册”。

  4. 输入应用程序的显示名称。

  5. 在支持的帐户类型中选择“仅此组织目录中的帐户”。

  6. 选择“注册”。

注册应用程序后,必须按照以下步骤添加客户端密码:

  1. 浏览到“标识”>“应用程序”>“应用注册”。

  2. 选择你的应用程序。

  3. 选择“证书和机密”>“客户端密码”>“新建客户端密码”。

  4. 添加客户端机密的说明。

  5. 选择机密的过期时间,或指定自定义的生存期。

  6. 选择“添加”。

注意

有关注册应用程序的详细信息,请参阅:快速入门:在 Microsoft 标识平台中注册应用

若要授权创建的应用程序以调用 MS Graph 恢复 API,请执行以下步骤:

  1. 导航到 Microsoft Entra 管理中心身份治理 - Microsoft Entra 管理员中心

  2. 在左侧菜单中,选择“目录”。

  3. 选择为其添加了自定义扩展的目录。

  4. 选择“角色和管理员”菜单,然后选择“+ 添加访问包分配管理人员”。

  5. 在“选择成员”对话框中,按名称或应用程序标识符搜索创建的应用程序。 选择应用程序,然后选择“选择”按钮。

提示

有关委派和角色的更多详细信息,请参阅以下 Microsoft 官方文档:权利管理中的委托和角色

配置 ServiceNow 以进行自动化身份验证

此时,可以配置 ServiceNow,以便在 ServiceNow 票证关闭后恢复权利管理工作流:

  1. 按照以下步骤在 ServiceNow 应用程序注册表中注册 Microsoft Entra 应用程序:
    1. 登录 ServiceNow 并导航到应用程序注册表。
    2. 选择“新建”,然后选择“连接到第三方 OAuth 提供程序”。
    3. 提供应用程序的名称,然后在“默认授权类型”中选择“客户端凭据”。
    4. 输入在 Microsoft Entra 管理中心中注册 Microsoft Entra 应用程序时生成的客户端名称、ID、客户端密码、授权 URL 和令牌 URL。
    5. 提交应用程序。 ServiceNow 中的应用程序注册表的屏幕截图。
  2. 按照以下步骤创建系统 Web 服务 REST API 消息:
    1. 转到“系统 Web 服务”下的“REST API 消息”部分。
    2. 选择“新建”按钮,创建新的 REST API 消息。
    3. 填写所有必填字段,其中包括提供终结点 URL:https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/${AccessPackageAssignmentRequestId}/resume
    4. 在“身份验证”中,请选择“OAuth2.0”,然后选择在应用注册过程中创建的 OAuth 配置文件。
    5. 选择“提交”按钮以保存更改。
    6. 返回“系统 Web 服务”下的“REST API 消息”部分。
    7. 选择“Http 请求”,然后选择“新建”。 输入名称,然后选择“POST”作为 Http 方法。
    8. 在 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}"
                  }
      
    9. 选择“提交”以保存更改。 ServiceNow 中的恢复调用选择的屏幕截图。ServiceNow 中的 http 请求的屏幕截图。
  3. 修改请求表架构:若要修改请求表架构,请对下图所示的三个表进行更改:ServiceNow 中的请求表架构的屏幕截图。 添加三个列标签并键入为字符串:
    • AccessPackageAssignmentRequestId
    • AccessPackageAssignmentStage
    • StageInstanceId
  4. 若要使用流设计器自动执行工作流,请执行以下操作:
    1. 登录 ServiceNow 并转到流设计器。
    2. 选择“新建”按钮并创建新操作。
    3. 添加操作以调用在上一步中创建的系统 Web 服务 REST API 消息。 用于恢复 ServiceNow 中的权利管理过程的流设计器脚本的屏幕截图。 操作的脚本:(使用在上一步中创建的列标签更新脚本):
      (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); 
      
    4. 保存操作
    5. 选择“新建”按钮以创建新流。
    6. 输入流名称,选择“运行方式 - 系统用户”,然后选择“提交”。
  5. 若要在 ServiceNow 中创建触发器,请执行以下步骤:
    1. 选择“添加触发器”,然后选择“已更新”触发器,在每次更新时运行触发器。
    2. 通过更新条件添加筛选条件,如下图所示:ServiceNow 调用权利管理恢复 API 的屏幕截图
    3. 选择“完成”。
    4. 选择“添加操作”流程图触发器的屏幕截图。
    5. 选择“操作”,然后选择在上一步中创建的操作。 流设计器操作选择的屏幕截图。
    6. 将新创建的列从请求记录拖放到相应的操作参数中。
    7. 依次选择“完成”、“保存”和“激活”。 在流设计器中保存并激活的屏幕截图。

以最终用户身份请求获取访问包

当最终用户请求获取访问包时,请求将发送给相应的审批者。 审批者批准后,权利管理会调用逻辑应用。 然后,逻辑应用调用 ServiceNow 创建新的请求/票证,权利管理会等待 ServiceNow 的回调。

请求访问包的屏幕截图。

以最终用户身份接收对请求的访问包的访问权限

IT 支持团队处理前面创建的票证,以执行必要的预配并关闭 ServiceNow 票证。 当票证关闭时,ServiceNow 会触发调用以恢复权利管理工作流。 请求完成后,请求者将收到权利管理发送的通知,告知请求已完成。 这种简化的工作流可以确保高效地满足访问请求,并及时通知用户。

“我的访问权限”请求历史记录的屏幕截图。

注意

如果票证未在 14 天内关闭,最终用户将在 MyAccess 门户中看到“分配失败”。

后续步骤

前往下一篇文章,了解创建方法...