将环境变量用于 Azure Key Vault 密码

环境变量允许引用存储在 Azure 密钥保管库中的机密。 然后,这些机密可在 Power Automate 流和自定义连接器中使用。 请注意,这些机密不能用于其他自定义,或在一般情况下通过 API 使用。

实际机密存储在 Azure 密钥保管库中,环境变量将引用密钥保管库机密的位置。 将 Azure 密钥保管库机密与环境变量一起使用需要配置 Azure 密钥保管库,以使 Power Platform 可以读取您要引用的特定机密。

引用机密的环境变量当前在动态内容选择器中无法用于流。

配置 Azure 密钥保管库

要将 Azure 密钥保管库机密与 Power Platform 一起使用,具有该保管库的 Azure 订阅必须注册 PowerPlatform 资源提供程序,并且创建环境变量的用户必须对 Azure 密钥保管库资源具有适当的权限。

备注

  • 我们最近更改了用于在 Azure Key Vault 中断言访问权限的安全角色。 以前的说明包括分配密钥保管库读者角色。 如果您之前使用密钥保管库读者角色设置了密钥保管库,请确保添加密钥保管库机密用户角色,以确保您的用户和 Dataverse 有足够的权限检索机密。
  • 我们认识到,我们的服务在使用 Azure 基于角色的访问控制 API 来评估安全角色分配,即使您的密钥保管库仍配置为使用保管库访问策略权限模型。 要简化配置,我们建议您将保管库权限模型切换到 Azure 基于角色的访问控制。 您可以在“访问配置”选项卡中执行此操作。
  1. 在您的 Azure 订阅中注册 Microsoft.PowerPlatform 资源提供程序。 按照以下步骤验证和配置:资源提供程序和资源类型

    在 Azure 中注册 Power Platform 提供程序

  2. 创建 Azure 密钥保管库。 考虑为每个 Power Platform 环境使用单独的保管库,来最大程度地减少违规情况带来的威胁。 考虑将您的密钥保管库配置为对权限模型使用 Azure 基于角色的访问控制。 详细信息:使用 Azure Key Vault 的最佳做法快速入门 - 使用 Azure 门户创建 Azure Key Vault

  3. 创建或使用机密类型的环境变量的用户必须具有检索机密内容的权限。 要授予新用户使用机密的能力,选择访问控制 (IAM) 区域,选择添加,然后从下拉列表中选择添加角色分配。 详细信息:通过 Azure 基于角色的访问控制提供对密钥保管库机密、证书和机密的访问

    在 Azure 中查看我的访问权限

  4. 添加角色分配向导中,将默认分配类型保留为工作职能角色,然后继续转到角色选项卡。找到密钥保管库机密用户角色,选择它。 继续转到成员选项卡,选择选择成员链接,在侧面板中找到用户。 选择用户并在成员部分显示用户后,继续查看和分配选项卡并完成向导。

  5. Azure Key Vault 必须将密钥保管库机密用户角色授予 Dataverse 服务主体。 如果此保管库不存在,使用与您以前用于最终用户权限的相同方法添加新的访问策略,只使用 Dataverse 应用程序标识而不是用户。 如果您的租户中有多个 Dataverse 服务主体,我们建议您将其全部选中并保存角色分配。 分配角色后,查看角色分配列表中列出的每个 Dataverse 项目,然后选择 Dataverse 名称查看详细信息。 如果应用程序 ID 不是 00000007-0000-0000-c000-000000000000,选择标识,然后选择删除以将其从列表中删除。

  6. 如果您已启用 Azure Key Vault 防火墙,必须允许 Power Platform IP 地址访问您的密钥保管库。 Power Platform 不包含在“仅受信任的服务”选项中。 因此,请参考 Power Platform URL 和 IP 地址范围一文,以获取服务中当前使用的 IP 地址。

  7. 如果还没有,请向您的新保管库添加密码。 详细信息:Azure 快速入门 - 使用 Azure 门户设置机密以及从密钥保管库检索机密

为密钥保管库机密创建新环境变量

配置 Azure 密钥保管库并在您的保管库中注册机密后,您现在可以使用环境变量在 Power Apps 中引用它。

备注

  • 将在后台执行机密的用户访问验证。 如果用户没有最基本的读取权限,将显示此验证错误:“此变量未正确保存。 用户无权从‘Azure Key Vault 路径’读取密码”。
  • 目前,Azure 密钥保管库是环境变量唯一支持的机密存储。
  • Azure 密钥保管库必须与 Power Platform 订阅处于相同的租户中。
  1. 登录到 Power Apps,然后在解决方案区域,打开您用于开发的非托管解决方案。

  2. 选择新建 > 更多 > 环境变量

  3. 为环境变量输入显示名称以及(可选)说明

  4. 选择数据类型机密机密存储Azure 密钥保管库

  5. 可从以下选项中选择:

    • 选择新 Azure 密钥保管库值引用。 在下一步添加信息并保存后,会创建一个环境变量记录。
    • 展开显示默认值,以显示用于创建默认 Azure 密钥保管库机密的字段。 在下一步中添加信息并保存后,在环境变量定义记录中添加默认值界限。
  6. 输入以下信息:

    • Azure 订阅 ID:与密钥保管库关联的 Azure 订阅 ID。

    • 资源组名称:包含机密的密钥保管库所在的 Azure 资源组。

    • Azure 密钥保管库名称:包含机密的密钥保管库的名称。

    • 机密名称:位于 Azure 密钥保管库中的机密的名称。

      提示

      订阅 ID、资源组名称和密钥保管库名称可在密钥保管库的 Azure 门户概览页上找到。 通过选择设置下的机密可以在 Azure 门户的密钥保管库页面上找到机密名称。

  7. 选择保存

创建 Power Automate 流来测试环境变量机密

演示如何使用从 Azure 密钥保管库获取的机密的一个简单场景,是创建一个 Power Automate 流使用该机密对 Web 服务进行身份验证。

备注

此示例中 Web 服务的 URI 不是可工作的 Web 服务。

  1. 登录 PowerApps,选择解决方案,然后打开所需的非托管解决方案。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。

  2. 选择新建 > 自动化 > 云端流 > 即时

  3. 为流输入名称,选择手动触发流,然后选择创建

  4. 选择新建步骤,选择 Microsoft Dataverse 连接器,然后在操作选项卡上选择执行未绑定操作

  5. 从下拉列表中选择名为 RetrieveEnvironmentVariableSecretValue 的操作。

  6. 提供上一节中添加的环境变量唯一名称(不是显示名称),本示例使用 new_TestSecret

  7. 选择 ... > 重命名重命名操作,以可以在下一个操作中更容易地引用。 在下面的屏幕截图中,它已重命名为 GetSecret

    测试环境变量机密的即时流配置

  8. 选择 ... > 设置显示 GetSecret 操作设置。

  9. 在设置中启用安全输出选项,然后选择完成。 这是为了防止操作的输出暴露在流运行历史记录中。

    为操作启用安全输出设置

  10. 选择新建步骤,搜索并选择 HTTP 连接器。

  11. 选择方法GET,为 Web 服务输入 URI。 在此示例中,使用虚构的 Web 服务 httpbin.org

  12. 选择显示高级选项,选择身份验证基本,然后输入用户名

  13. 选择密码字段,然后在上述流步骤名称(本示例中为 GetSecret)下的动态内容选项卡上选择 RetrieveEnvironmentVariableSecretValueResponse EnvironmentVariableSecretValue,它之后将添加为表达式 outputs('GetSecretTest')?['body/EnvironmentVariableSecretValue']body('GetSecretTest')['EnvironmentVariableSecretValue']

    使用 HTTP 连接器创建新步骤

  14. 选择 ... > 设置显示 HTTP 操作设置。

  15. 在设置中启用安全输入安全输出选项,然后选择 完成。 启用这些选项可防止操作的输入和输出暴露在流运行历史记录中。

  16. 选择保存流创建流。

  17. 手动运行流对其进行测试。

    使用流的运行历史记录,可以验证输出。

    流输出

限制

  • 引用 Azure Key Vault 机密的环境变量目前仅限用于 Power Automate 流和自定义连接器。

另请参见

在画布应用中使用数据源环境变量
在 Power Automate 解决方案云端流中使用环境变量
环境变量概述。

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。