Compartilhar via

外部使用自定义扩展确定访问包的审批要求(预览版)

在权利管理中,可以直接分配访问包请求的审批者,也可以动态确定。 权限管理本身就支持动态地确定审批者,例如申请人的经理、其二级经理或来自连接组织的赞助商。

权利管理中审批者的本机支持的屏幕截图。

通过引入调用 Azure 逻辑应用的自定义扩展,现在可以根据组织特定的业务逻辑动态确定每个访问包分配请求的审批要求。 访问包分配请求过程将暂停,直到 Azure 逻辑应用中托管的业务逻辑返回 审批阶段 ,然后通过 “我的访问”门户在子审批过程中利用该阶段。 例如,如果访问请求必须由请求访问包的人员的部门负责人批准,此功能允许你查询外部系统(例如人力资源(HR)系统,以便实时查找当前部门负责人,并将其分配为给定访问请求的审批者。

使用自定义扩展确定审批者的示例的屏幕截图。

本文将引导你完成自定义扩展、其基础 Azure 逻辑应用、在目录中设置其系统分配的标识和角色、编辑逻辑应用作以执行业务逻辑,以及测试以查看它是否成功运行。

许可要求

使用此功能需要Microsoft Entra ID Governance 或 Microsoft Entra Suite 许可证。 若要查找符合要求的正确许可证,请参阅 Microsoft Entra ID Governance 许可基础知识

先决条件

创建自定义扩展和 Azure 逻辑应用

若要创建自定义扩展及其基础 Azure 逻辑应用,请执行以下步骤:

  1. 以至少自定义扩展所在的目录的目录所有者身份登录到 Microsoft Entra 管理中心

  2. 浏览到 ID 治理>授权管理>目录

  3. 在“目录概述”页上,选择自定义扩展所在的现有目录,或创建新目录。

  4. 在想要创建自定义扩展的特定目录页上,选择 “自定义扩展”。 正在添加自定义扩展的目录页的屏幕截图。

  5. 选择 “添加自定义扩展 ”以添加自定义扩展的名称和说明。 完成后,选择“下一步”。 自定义扩展基础的屏幕截图。

  6. “扩展类型 ”页上,选择“ 请求”工作流(在请求、批准、授予或删除访问包时触发) 并选择“ 下一步”。 选择自定义扩展的扩展类型的屏幕截图。

  7. “扩展配置 ”页上,对于“行为”选择“ 启动并等待”,对于“响应数据”选择“ 审批阶段”(预览),然后选择“ 下一步”。 自定义扩展审批阶段选项的屏幕截图。

  8. 在“ 详细信息 ”页上,为要创建的逻辑应用选择订阅、资源组和名称。 输入此信息后,选择“ 创建逻辑应用”。 创建逻辑应用后,选择“ 下一步”。

  9. “查看 + 创建 ”页上,确保所有详细信息都正确,然后选择“ 创建”。

引用访问包分配策略中的自定义扩展

创建自定义扩展和逻辑应用后,可以通过执行以下步骤来引用访问包分配策略中的自定义扩展:

  1. 选择创建自定义扩展的目录。

  2. 在目录页上,选择 “访问包”,然后选择要更新的策略的访问包。

  3. 在访问包概述页上,选择“ 策略”,然后选择要编辑的策略。 访问包的策略列表的屏幕截图。

  4. 在“请求”下的“编辑策略”页上,将“需要审批”框设置为“是”,并且你可以将自定义扩展添加为审批者。 以下示例显示自定义扩展用作首位审批者。 自定义扩展作为访问包策略中的第一个审批者的屏幕截图。

  5. 选择更新

更新后,可以转到已编辑的策略,并通过选择“审批阶段详细信息”来确认更改。

已编辑的审批阶段详细信息的屏幕截图。

设置逻辑应用分配的标识并分配其角色

创建 Azure 逻辑应用后,必须启用其系统分配的标识,并通过执行以下步骤为其提供适当的角色:

  1. 登录到 Azure 门户,并转到至少具有 逻辑应用参与者 角色的 Azure 内置角色 的逻辑应用。

  2. 在逻辑应用概述页上,转到 “设置>标识”。

  3. 在“标识”页上,启用系统分配的托管标识 屏幕截图,用于启用逻辑应用系统分配的托管标识。

  4. 选择“保存”

  5. 返回到 Microsoft Entra 管理中心,至少作为 目录所有者的角色,转到在其中创建自定义扩展的目录,然后选择 “角色”和“管理员”。

  6. 在“角色和管理员”页上,选择 “添加访问包分配管理器”,然后选择创建的逻辑应用。 作为目录的访问包分配管理器添加逻辑应用的屏幕截图。

配置逻辑应用和相应的业务逻辑

通过 Azure 逻辑应用为目录提供访问包分配管理器角色,现在必须转到逻辑应用以对其进行编辑,以便与 Microsoft Entra 通信。 为此,需要执行以下步骤:

  1. 在创建的逻辑应用上,转到 开发工具>逻辑应用设计器

  2. 在设计器页上,删除 手动 触发器下的所有内容,然后选择 添加操作按钮。 在逻辑应用设计器中添加操作的屏幕截图。

  3. 在“添加动作”窗格中,选择 HTTP

  4. 在“参数”下的 “HTTP ”窗格中,输入以下参数:

    • URI:https://microsoftgraph.chinacloudapi.cn/beta@{triggerBody()?['CallbackUriPath']}
    • 方法:POST
    • 身份验证类型:托管标识
    • 托管标识:系统分配的托管标识
    • 观众: https://microsoftgraph.chinacloudapi.cn
  5. 在“HTTP 设置”下,禁用 异步模式 在逻辑应用 http 调用中禁用异步模式的屏幕截图。

  6. 对 HTTP 触发器进行更改后,选择“ 保存”。

将业务逻辑添加到逻辑应用

配置了用于与 Microsoft Entra 通信的逻辑应用后,现在可以添加您想要应用执行的动作。 逻辑应用的动作将被添加到您为逻辑应用配置的 HTTP 部分的正文中。 编辑此项,请执行以下步骤:

  1. 在创建的逻辑应用上,转到 开发工具>逻辑应用设计器

  2. 在逻辑应用设计器页上,选择 “HTTP”。

  3. 在“ 参数”下的“HTTP”窗格中,向下滚动到 “正文 ”,并根据要查询的参数输入逻辑数据。 有关详细信息,请参阅: 从 Azure 逻辑应用中的工作流调用外部 HTTP 或 HTTPS 终结点 将业务逻辑添加到逻辑应用的屏幕截图。

    注释

    有关主体操作的示例,请参阅:HTTP操作示例

  4. 添加完业务逻辑后,选择“ 保存”。

验证扩展是否正常工作

若要验证自定义扩展是否正常工作,可以请求访问包的访问权限,并按照以下步骤通过访问包页上的 “请求 ”查看请求详细信息:

  1. 以至少自定义扩展所在的目录的目录所有者身份登录到 Microsoft Entra 管理中心

    小窍门

    可以完成此任务的其他最低特权角色包括访问包管理器、访问包分配管理器和标识治理管理员。

  2. 浏览到 ID 治理>权限管理>访问权限包

  3. 在“访问包”页上,打开要查看其请求的访问包。

  4. 选择“请求”。

  5. 在“请求”页面,选择要查看详细信息的请求,然后确认访问包已成功传递。 查看访问包请求的详细信息。

HTTP操作示例

以下可以放置在 HTTP 正文中的操作示例是一个标识主要审批者的逻辑应用。 你需要在提示的位置输入自己的变量到以下代码中:

{
  "data": {
    "@@odata.type": "microsoft.graph.assignmentRequestApprovalStageCallbackData",
    "approvalStage": {
      "durationBeforeAutomaticDenial": "P2D",
      "escalationApprovers": [],
      "fallbackEscalationApprovers": [],
      "fallbackPrimaryApprovers": [],
      "isApproverJustificationRequired": false,
      "isEscalationEnabled": false,
      "primaryApprovers": [
        {
          "@@odata.type": "#microsoft.graph.singleUser",
          "description": "This is the primary approver for the access package requested by the user.",
          "id": "<Dynamically assigned variable>",
          "isBackup": false
        }
      ]
    },
    "customExtensionStageInstanceDetail": "A approval stage from Logic Apps",
    "customExtensionStageInstanceId": "@{triggerBody()?['CustomExtensionStageInstanceId']}",
    "stage": "assignmentRequestDeterminingApprovalRequirements"
  },
  "source": "LogicApps",
  "type": "microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated"
}

注释

尽管示例中使用了用户 ID,但 primaryApprovers 和 escalationApprovers 部分可以包含由权利管理支持的有效 subjectSets。 在公共预览版中,必须针对 Microsoft Graph 的 beta 终结点执行恢复调用。 但是,简历呼叫正文中提供的 审批阶段 必须遵循 v1.0 约定 ,而不是 beta 约定