具有 Microsoft Entra ID 的 HTTP

使用 HTTP 连接器从各种 Web 服务提取资源,通过 Microsoft Entra ID 或本地 Web 服务进行身份验证。

此连接器在以下产品和区域中可用:

服务 Class 区域
Copilot Studio 高级 所有 Power Automate 区域
逻辑应用程序 标准 除以下各项外的所有 逻辑应用区域
     - 美国国防部(DoD)
Power Apps 高级 所有 Power Apps 区域
Power Automate 高级 所有 Power Automate 区域
联系人​​
Name Microsoft
URL Microsoft LogicApps 支持
Microsoft Power Automate 支持
Microsoft Power Apps 支持
连接器元数据
发布者 Microsoft

已知问题和限制

  1. 要使“HTTP 与 Microsoft Entra ID”连接器成功检索另一个服务中的数据,连接器使用的应用必须被授予对所需作用域的访问权限。 有关如何授予对应用所需的访问权限的详细信息,请参阅 授权应用代表已登录用户执行作。 如果未授予所需的访问权限,则尝试创建连接时,可能会收到以下错误之一:

    Consent Required: To enable the HTTP With Microsoft Entra ID connector to access resources on behalf of a signed-in user, grant consent to this application.
    

    授予许可

    如果已授予范围(权限),但不包括所有必需的范围,则连接创建将成功,但运行时会遇到“禁止”(403)错误。 错误详细信息可能包括其他信息,例如:

    "code": "Authorization_RequestDenied"
    "message": "Insufficient privileges to complete the operation." 
    
  2. 连接器将请求正文编码为 base64 编码,因此它应该用于调用需要采用此格式的请求正文的后端服务。 不能使用此连接器调用需要原始二进制格式的请求正文的后端服务。

  3. 连接器基于多租户应用程序注册。 在用户登录之前,应用程序无法告知用户从哪个租户。 因此,我们仅支持在用户的默认租户(“common”)下指定资源。

  4. 不支持基于 ADFS SSO 的资源(Microsoft Single Sign-On的 Entra ID 联合身份验证服务)。 解决方法是,请使用“HTTP”连接器。

  5. 在国家云环境中使用此连接器时,资源 必须是 其国家云终结点等效项。 尝试尝试从大多数国家/地区云环境连接到公有云(https://graph.microsoft.comhttps://bing.com例如),失败并出现预授权错误。

  6. 如果启用了本地数据网关连接,则不支持使用 Cookie 授权请求标头。

  7. 不支持基于响应位置标头的异步模式。 请改用 Azure 资源管理器 连接器(如果适用)。

  8. 此连接器中不提供“获取文件内容”作,因为它与“调用 HTTP”作非常相似。 两者之间的唯一区别是前一个作对响应进行编码。 因此,若要获取 base64 编码的响应,只需将响应从“调用 HTTP”作传输到可用编码作之一。

  9. 删除或添加预授权最多可能需要 1 小时才能反映更新之前现有连接。 但是,新连接应立即反映更新的授权。

  10. 如果在创建连接时遇到问题,或者缺少参数值时收到错误,请尝试与 Power Automate 的旧设计器(而不是新设计器)建立连接。

授权连接器代表已登录用户执行作

作为具有全局管理员角色的用户,需要创建 oAuth2PermissionGrants 来批准所需服务所需的权限(范围)。

例如,如果使用 Microsoft Graph(https://graph.microsoft.com)并且需要读取日历信息,则可以按照 Graph 文档 来确定所需的权限(Calendar.Read)。 通过授予应用(连接器使用)Calendar.Read 范围,它将允许应用代表用户从服务访问此数据。 需要注意的一个重要事项是,应用可以访问的数据仍仅限于用户有权在服务中访问的数据。 无法使用 Azure 门户授予对此应用的同意。 因此,Microsoft创建了一个 PowerShell 脚本,以简化对 HTTP 与 Microsoft Entra ID 连接器使用的应用的许可。

重要

需要安装 PowerShell 版本 7 或更高版本才能运行此脚本。

  1. 此处 下载所需的 PowerShell 脚本,或创建一个名为“ManagePermissionGrant.ps1”的脚本,引用 此处提到的步骤。 此脚本主要用于参考,可以根据用例修改脚本。

  2. 右键单击下载的 ManagePermissionGrant.ps1 文件,然后单击“ 属性”。

  3. 单击“ 取消阻止 ”复选框,然后单击“ 确定”。

    取消阻止脚本

    如果未选中“取消阻止”复选框,将收到一个错误,指示无法加载脚本,因为它未进行数字签名。

  4. 打开 PowerShell 命令窗口。

  5. 将路径更改为下载脚本的位置。

  6. 输入以下命令,然后按 Enter

    .\ ManagePermissionGrant.ps1
    

    执行管理权限授予脚本

  7. 系统将提示你选择是向 Azure 全局进行身份验证(建议)还是从列表(高级)中进行选择。 如果未连接到 US Gov、US Gov DoD、中国或德国的订阅,请按 Enter。

    云选择

  8. 如果尚未这样做,系统可能会在新的浏览器窗口中提示你向Microsoft标识平台进行身份验证。 以具有全局管理员角色的用户身份进行身份验证。

  9. 若要向某些最常用的服务(如 Microsoft Graph 或 SharePoint)授予许可,请按 Enter。 如果需要同意的服务不在常用应用列表中,请使用选项 A

    资源和范围选择

  10. 将显示一个对话框。 选择要同意允许连接器代表用户执行作的应用程序。 可以使用顶部的文本框筛选结果。

    选择应用程序

  11. 单击 “确定”

  12. 选择要同意的一个或多个范围(权限),然后单击“ 确定”。 可以通过在选择行时按住 Ctrl 键来选择多个范围。

  13. 在 PowerShell 窗口中,系统会提示你选择同意类型。 可以选择是允许应用代表任何登录用户进行作,还是要限制对特定用户的同意。 如果要为所有用户提供同意,请按 Enter。 如果只想为特定用户提供许可,请键入 N ,然后按 Enter。 如果选择同意特定用户,系统会提示你选择该用户。

  14. 如果所选资源已存在任何范围的同意,系统会提示你选择是否要先删除现有授权。 如果要删除现有授权,请键入 Y ,然后按 Enter。 如果要保留现有授权,请按 Enter

  15. 所选范围的摘要将显示在 PowerShell 窗口中。 如果要继续授予所选范围,请键入 Y ,然后按 Enter

  16. 如果脚本可以成功授予同意,则会看到脚本执行已完成的消息。

正在创建连接

连接器支持以下身份验证类型:

默认 用于创建连接的参数。 所有区域 不可共享

违约

适用:所有区域

用于创建连接的参数。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

Name 类型 Description 必选
Microsoft Entra ID 资源 URI (应用程序 ID URI) 字符串 Microsoft Entra ID 中用于标识目标资源的标识符。 对于 SharePoint Online 和 OneDrive for Business,请使用 https://{contoso}.sharepoint.com。 通常,它是资源的基 URL。 True
基本资源 URL 字符串 以要连接到的 GUID 形式指定 HTTP 资源或应用程序(客户端)ID 的基 URL。 True
用户名 securestring 用户名凭据
密码 securestring 密码凭据
身份验证类型 字符串 用于连接到本地 HTTP 资源的身份验证类型
Gateway gatewaySetting 本地网关(请参阅 https://docs.microsoft.com/data-integration/gateway 更多详细信息)

限制

名称 调用 续订期
每个连接的 API 调用数 100 60 秒

操作

调用 HTTP 请求

调用 HTTP 终结点。

调用 HTTP 请求

调用 HTTP 终结点。

参数

名称 密钥 必需 类型 说明
方法
method True string

已知 HTTP 谓词之一:GET、DELETE、PATCH、POST、PUT。

请求的 URL
url True string

资源的完整或相对 URL。 如果它是完整的 URL,则它必须与连接中设置的基本资源 URL 匹配。

Headers
headers object

请求标头。

请求正文
body string

当方法需要请求时请求的正文。

返回

响应的内容。

Body
string