画布应用的连接器概述
数据是大多数应用(包括在 Power Apps 中生成的数据)的关键所在。 数据存储在数据源中,应用是通过创建的连接来导入数据。 连接使用特定的连接器与数据源进行通信。 Power Apps 提供连接器,适用于许多常用服务和本地数据源,包括 SharePoint、SQL Server、Office 365、Salesforce 和 Twitter。 若要开始向画布应用添加数据,请参阅在 Power Apps 中添加数据连接。
连接器可能会提供数据的表或操作。 某些连接器仅提供表,某些连接器仅提供操作,而某些连接器会提供两者。 此外,您的连接器可能是标准连接器或自定义连接器。
表
如果您的连接器提供表,则添加数据源,然后选择要管理的数据源中的表。 Power Apps 会将表数据检索到应用中并为你自动更新数据源中的数据。 例如,可以添加一个包含名为课程的表的数据源,然后在编辑栏中将控件的 Items 属性(如库或表单)设置为以下值:
通过自定义用于显示数据的控件的 Items 属性,您可以指定应用检索的数据。 继续前面的示例,通过将该名称用作 Search 和 SortByColumn 函数的参数,您可以对课程表中的数据进行排序或筛选。 在此图中,Items 属性所设置的公式指定基于 TextSearchBox1 中的文本对数据进行排序和筛选。
有关如何使用表自定义公式的详细信息,请参阅以下文章:
了解 Power Apps 中的数据源
通过 Excel 数据生成应用
从头开始创建应用
了解 Power Apps 中的表和记录
备注
若要连接到 Excel 工作簿数据,工作簿必须托管在 OneDrive 等云存储服务中。 有关详细信息,请参阅从 Power Apps 连接到云存储。
操作
如果您的连接器提供操作,则必须与前面一样仍选择数据源。 而不是选择表作为下一步,但是,通过编辑将显示数据的控件的 Items 属性,可以手动将控件连接到操作。 Items 属性所设置的公式指定用于检索数据的操作。 例如,如果连接到 Yammer,然后将 Items 属性设置为数据源的名称,则应用不会检索任何数据。 若要用数据填充控件,请指定 GetMessagesInGroup(5033622).messages 等操作。
如果需要处理操作连接器的自定义数据更新,请生成包含 Patch 函数的公式。 在公式中,标识操作以及将绑定到操作的字段。
备注
对于基于操作的连接器,库和其他控件不会像对表格连接器那样自动分页更多数据。 例如,如果您将表格数据源绑定到库,它将检索第一组或第一页记录(例如 100 条记录)。然后,它将根据控件的请求分页更多数据。 但是,对于基于操作的连接器,它将检索“一页”数据。 但是,如果请求的数据超过一页数据的大小,则控件不会自动获取下一页。
有关如何为自定义更新自定义公式的详细信息,请参阅以下文章:
动态架构是基于操作的连接器的常见结果类型。 动态架构是指相同的操作可能返回具有不同列的表(具体取决于它的调用方式)的可能性。 可能导致表中的列不同的条件包括输入参数、执行操作的用户或角色,以及用户工作的组等。 例如,如果使用不同的输入运行,SQL Server 存储过程可能会返回不同的列,或者 Azure DevOps 实例可能使用默认不可用的自定义字段。 请注意,连接器文档显示动态架构结构,包含此消息此操作的输出是动态的。 作为返回值。
有关如何使用 Power Apps 中的动态架构的详细信息,请参阅使用非类型化动态对象以获取概述和从 Power Apps 连接到 Azure DevOps 以获取详细示例。
常用连接器
单击下表中列出的链接,可详细了解最常用的连接器。 若要获取连接器的完整列表,请参阅所有连接器。
Microsoft Dataverse | 云存储 ** |
Dynamics AX | Excel |
Microsoft Translator | Office 365 Outlook |
Office 365 用户 | Oracle |
Power BI | SharePoint |
SQL Server |
** 适用于 Azure Blob、Box、Dropbox、Google Drive、OneDrive 和 OneDrive for Business
标准和自定义连接器
Power Apps 为许多常用数据源提供标准连接器。 如果 Power Apps 的标准连接器适用于要使用的数据源的类型,则应使用该连接器。 如果要连接到其他类型的数据源(如已构建的服务),请参阅注册和使用自定义连接器。
所有标准连接器
标准连接器不需要特殊许可。 有关详细信息,请参阅 Power Apps 计划。
你可以在 Power Apps 论坛中提出有关具体连接器的问题,也可以建议想要添加的连接器或在 Power Apps 建议中做出其他改进。
身份验证的安全性和类型
在创作应用和创建与数据源的连接时,您可能会看到选择的连接器允许您使用不同的方式进行身份验证。 例如,SQL Server 连接器允许您使用 Microsoft Entra Integrated、SQL Server 身份验证和 Windows 身份验证。 每种类型的身份验证都具有与之关联的不同级别的安全性。 了解与使用您的应用程序的用户共享哪些信息和权限很重要。 本文中的主要示例是 SQL Server,但是原理适用于所有类型的连接。
备注
- 有关使用关系数据库服务器(如 Microsoft SQL Server 或 Oracle)作为应用的数据源时的安全注意事项的详细信息,请参阅使用 Power Apps 安全地使用 Microsoft SQL Server。
- Power Apps 不支持外部成员标识。 有关详细信息,请参阅 Microsoft Entra B2B 协作用户的属性。
Microsoft Entra ID
这是一个安全的连接类型。 例如,SharePoint 使用此类身份验证。 SQL Server 也允许使用此类身份验证。 连接时,Microsoft Entra 服务代表您在 SharePoint 中单独识别您。 不必提供用户名和密码。 作为作者,您可以使用凭据创建和使用数据源。 当您发布应用程序并且您的应用程序用户登录时,他们也将使用他们的凭据执行这些操作。 如果数据在后端得到了适当的保护,那么您的用户只能看到他们根据其凭据有权查看的内容。 这种类型的安全性使您可以在发布应用程序后在后端数据源更改特定应用程序用户的权限。 例如,您可以授予访问权限、拒绝访问或优化一个用户或一组用户可以在后端数据源上看到的全部内容。
开放标准授权 (OAuth)
这种类型的连接也是安全的。 例如,Twitter 使用此类身份验证。 连接时,您必须提供用户名和密码。 作为作者,您可以使用凭据创建和使用数据源。 当您发布应用程序并且您的应用程序用户登录时,他们也必须提供他们的凭据。 因此,这种连接是安全的,因为您的用户必须使用自己的凭据才能访问数据源服务。
共享连接/安全隐式连接
在共享连接中,当在应用程序中创建数据源时,连接的用户名和密码由 Power Apps 作者提供。 然后,对数据源的连接身份验证与最终用户隐式共享。 发布应用程序后,连接也将发布并可供您的用户使用。
在 2024 年 1 月之前,您的最终用户可以使用与他们共享的连接并创建单独的新应用程序。 您的用户看不到用户名或密码,但他们可以使用连接。 但是,在 2024 年 1 月之后,所有新创建的共享连接都是安全的。 请注意,必须重新发布旧应用才能确保安全。 这意味着不再与最终用户共享连接。 已发布的 Power App 与连接代理进行对话。 连接代理将仅与其链接的特定 Power App 进行对话。 对于给定数据源,连接代理将发送到连接的操作限制为 Power App 中的操作 {Get、Put/Patch、Delete}。 如果您的应用使用在 2024 年 1 月之前发布的连接,则应重新发布您的应用程序,并取消与不应拥有任何连接的最终用户共享这些连接。
例如,在 SQL Server 中,此类型的连接为 SQL Server 身份验证。 许多其他数据库数据源提供类似的功能。 在发布应用程序时,用户不需要提供唯一的用户名和密码。
更新应用的通知(安全隐式连接)
如果您的应用程序可以升级为使用此功能,您会在“应用”页面上看到一条消息。 它指示需要您关注的应用数量。
选择此链接,它会打开一个侧面板,列出所有需要注意的应用。
选择应用名称右侧的打开图标可以打开应用并重新发布。 请参见以下说明。
为现有应用启用安全隐式连接
使用以前发布的隐式共享连接打开一个现有的应用进行编辑:
- 在命令栏上,选择设置,然后搜索安全。
- 适当更新功能开关以启用安全隐式连接。
- 保存并发布应用。
取消共享
发布应用后,按照以下步骤验证共享是否正常工作:
检查是否已与共同负责人共享连接。 如果您不希望最终用户获得连接,取消选中共同负责人复选框。
要验证此功能是否正常工作,与不是负责人的其他用户共享应用。 共享应用后,检查该用户在 Power Apps 的 Dataverse 选项卡中的连接列表。 确认该用户没有可用连接。
打开共享面板来更改最终用户对连接的权限。 选择 X 将删除用户对连接的访问权限。
将应用与新的安全隐式连接一同使用
当您的应用被重新发布和共享时,最终用户将无法访问该连接,但将使用隐藏的代理连接。 他们将无法基于您的原始连接创建新应用。
限制
- 所有类型的隐式共享连接都起作用,如操作和表格。
- 服务器和数据库名称在网络跟踪中隐藏,但在同意对话中可见。 列名称未被隐藏。
- 对于表格连接器,我们只限制 CRUD 操作,如 Get、Post、Put 或 Delete。 如果您有 Put 的权限,则表示您有权使用 Post。
- 基于操作的连接器根据应用程序中使用的特定 API 进行限制。
- 共享中仍启用警告。 隐式共享连接的警告在个人预览时仍会发出警告。 但是,您与此功能的连接是安全的 – 虽然有警告。
- 不支持发布到整个租户(而非特定的组或个人)。
- 通过连接引用导入隐式共享的安全连接时存在一个已知问题。 目标环境中未正确设置安全性。
- 使用服务主体导入解决方案时存在一个已知问题,会导致导入失败。 一种解决方法是与服务主体共享连接。
Windows 身份验证
这种类型的连接不安全,因为它不依赖最终用户身份验证。 需要连接到本地数据源时,请使用 Windows 身份验证。 这种连接的一个示例是连接到具有 SQL Server 的本地服务器。 连接必须经过网关。 由于要经过网关,因此连接器有权访问该数据源上的所有数据。 如此一来,您可以使用您提供的 Windows 凭据访问的任何信息对连接器都可用。 而且,发布应用程序后,连接也将发布并可供您的用户使用。 此行为意味着您的最终用户也可以使用此相同的连接创建应用程序并访问该计算机上的数据。 数据源的连接也会与共享应用的用户隐式共享。 当您的数据源仅驻留在本地服务器上并且该源上的数据可自由共享时,这种连接类型可能有效。
解决方案中的数据源
解决方案用于应用程序生命周期管理,提供用于管理数据源生命周期的其他功能。 如果解决方案中有画布应用,可以创建连接引用和环境变量来存储有关数据源的信息。 这将确保在将解决方案迁移到不同环境时数据源可以更改或重新建立。
在应用中重命名数据源
若要了解重命名应用中的数据源以及表格数据源和基于操作的数据源之间的区别,请转到重命名基于 Power Apps 操作的数据源。
连接同意对话框
当用户第一次打开使用连接器的应用时,他们会看到一个具有以下用途的“连接同意”对话框。
通知用户有关应用访问的数据源的信息。
概括说明连接器在应用中可以执行或不能执行的操作。 例如,对于使用 Office 365 用户连接器的应用,这可以是以下内容。
- 此应用能够:
- 读取您的完整用户配置文件
- 读取所有用户的完整配置文件
- 它将无法:
- 修改或删除任何用户配置文件信息
- 此应用能够:
捕获最终用户同意以连接到本应用使用的数据源。
需要时便于手动对最终用户进行身份验证。
对于一些连接,Power Platform 可以自动对用户进行身份验证以访问数据源。 但是,如果自动登录失败,该对话会提示用户通过手动登录来修复连接。 只有当数据源预授权 Microsoft 的 Azure API 连接服务主体,并授予它在创建连接时为用户执行单一登录的权限时,Power Platform 才能尝试自动登录连接。 有关单一登录的详细信息,请参阅什么是单一登录 (SSO)?
请注意,对于使用自定义页面的模型驱动应用,当应用中有多个自定义页面时,同意对话会要求所有自定义页面中所有连接器的数据权限,即使它们尚未打开。
下图是连接到 SharePoint 站点的应用连接同意对话框的示例。
对于部分连接器,管理员可以隐藏此对话框,并代表最终用户同意连接到数据源。 下表说明应用可能会隐藏哪些类型的连接器的同意对话框。
备注
如果管理员隐藏同意对话框,但平台无法对最终用户执行单一登录,则当用户启动应用时,将向用户显示该对话框。
连接器类型 | “同意”对话框是否可隐藏? | 参考 |
---|---|---|
支持单一登录的 Microsoft 第一方连接器(如 SharePoint、Office 365 用户) | 是 | Power Apps 管理 cmdlet |
访问非 Microsoft 第三方服务(如 Salesforce)的连接器 | 否 | 不适用 |
将 OAuth 与 Microsoft Entra ID 一起用作标识提供者的自定义连接器。 这些是由组织构建的自定义连接器,并且只能由组织内的用户访问(例如,由 Contoso 仅为 Contoso 用户构建) | 是 | 管理连接 |
Microsoft Power Platform 只能针对以下数据源的连接隐藏同意对话框:
- 数据源没有义务显示明确的同意 UI。
- 数据源预授权 Microsoft 的 Azure API 连接服务主体以启用单一登录。
- 管理员将应用配置为隐藏上述连接的同意。
Microsoft 的第一方数据源存在 Microsoft 的 Azure API 连接服务主体的预授权,此预授权可由在 Microsoft Entra 租户中注册且由自定义连接器使用的自定义应用程序进行配置。 管理员会对每个应用(而不是根据连接器)管理同意隐藏,因此隐藏是在最细粒度的应用体验级别管理的 — 此粒度级别可防止组织的“已批准应用”的同意隐藏功能无意中隐藏未经批准或未经审查的应用的同意。