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

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

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

引用密钥的环境变量当前无法从动态内容选择器中获得,无法在 Power Automate 流中使用。

配置 Azure 密钥保管库

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

重要提示

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

     Power Platform 在 Azure 中注册提供程序

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

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

    在 Azure 中查看我的访问权限

  4. 在 Add role assignment( 添加角色分配 )向导中,将默认分配类型保留为 Job function roles(工作职能角色 ),然后继续到 Role(角色 选项卡。找到 Key Vault Secrets 用户角色 并选择它。 继续到 members 选项卡,选择 选择 成员链接,然后在侧面板中找到用户。 选择用户并在成员部分显示用户后,继续查看和分配选项卡并完成向导。

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

  6. 如果已启用 Azure Key Vault Firewall,则必须允许 Power Platform IP 地址访问密钥保管库。 Power Platform 不包含在“仅受信任的服务”选项中。 转到 Power Platform 服务中使用的当前 IP 地址的 URL 和 IP 地址范围

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

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

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

备注

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

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

  3. 输入显示名称 描述 (可选 )环境变量。

  4. 选择数据类型Secret,Secret Store Azure Key Vault

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

    • 选择 新的 Azure Key Vault 值引用。 在下一步步骤中添加并保存信息后,将创建环境变量 记录。
    • 展开 Show default value(显示默认值)以显示用于创建 Default Azure Key Vault secret( 默认 # Key Vault 密钥)的字段。 在下一个步骤中添加并保存信息后,默认值划分将添加到环境变量 定义 记录中。
  6. 输入以下信息:

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

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

    • Azure Key Vault Name:包含密钥的 Key Vault 的名称。

    • 密钥名称:位于 Azure Key Vault 中的密钥的名称。

      小费

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

  7. 选择保存

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

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

备注

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

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

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

  3. 输入流的名称,选择 Manually trigger a flow(手动扳机键),然后选择 Create(创建)。

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

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

  6. 提供环境变量 unique name(不是显示名称)在上一节中添加,对于此示例 new_TestSecret

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

    用于测试环境变量密钥的即时流配置

  8. 选择 ...>Settings(设置 )以显示 GetSecret 操作设置。

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

    为操作启用安全输出设置

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

  11. 选择 Method 设置为 GET ,然后输入 Web 服务的 URI 。 在此示例中,使用了虚构的 Web 服务 httpbin.org

  12. 选择 Show advanced options(显示高级选项),选择 Authentication( 身份验证 )作为 Basic(基本),然后输入 Username(用户名)。

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

    使用 HTTP 连接器创建新步骤

  14. 选择 ...>Settings(设置 )以显示 HTTP 操作设置。

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

  16. 选择 Save(保存 以创建流。

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

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

    流输出

在中使用环境变量密钥 Microsoft Copilot Studio

环境变量密钥的工作方式 Microsoft Copilot Studio 略有不同。 您需要完成配置 Azure Key Vault 为 Key Vault 机密 创建新的环境变量中的 步骤,才能将机密与环境变量一起使用。

授予 Copilot Studio 对 Azure Key Vault 的访问权限

请按照以下步骤进行操作:

  1. 返回到 Azure Key Vault。

  2. Copilot Studio 需要访问 Key Vault。 要授予 Copilot Studio 使用密钥的能力,请选择 左侧导航栏中的访问控制(IAM), 选择 添加,然后选择选择 添加角色分配

    在 Azure 中查看我的访问权限

  3. 选择 Key Vault 机密用户 角色,然后选择 下一步

  4. 选择 选择成员,搜索 Power Virtual Agents 服务,选择它,然后选择 选择

  5. 选择 屏幕底部的 Review + divide(查看 + 分配 )。 查看信息,如果一切正确,请再次选择 Review + assign(查看 + 分配 )。

添加标记以允许助手访问 Azure Key Vault 中的机密

完成本部分中的前面步骤后, Copilot Studio 现在可以访问 Azure Key Vault,但你还不能使用它。 要完成此任务,请跟随执行以下步骤:

  1. 转到 Microsoft Copilot Studio 并打开要用于环境变量 secret 的代理或创建一个新的 secret。

  2. 打开一个代理主题或创建一个新的。

  3. + 选择图标以添加节点,然后选择 Send a message(发送消息)。

  4. 选择 Insert variable {x} 选项。

  5. 选择选项卡环境选择 环境您在为 Key Vault 密钥 创建新的环境变量步骤中创建的变量密钥。

  6. 选择保存以保存主题。

  7. 在测试窗格中,使用您刚刚添加 Send a message (发送消息)节点的主题的开始短语之一测试您的主题环境变量密钥。 您应该会遇到如下所示的错误:

    错误消息:不允许机器人使用环境变量。要将机器人添加到允许列表,请添加带有值的标记“AllowedBots”。

    这意味着您需要返回 Azure Key Vault 并编辑密钥。 保持 Copilot Studio 打开状态,因为您稍后会回到这里。

  8. 转到 Azure Key Vault。 在左侧导航栏中,选择 Objects(对象)下的 Secrets(机密 信息)。 通过选择名称来选择要在其中使用的 Copilot Studio 密钥。

  9. 选择密钥的版本。

  10. 选择 Tags(标签) 旁边的 0 tags(0 标签 添加 Tag name(标签名称和 Tag value(标签值)。 中的 Copilot Studio 错误消息应为您提供这两个属性的确切值。 在 Tag Name(标签名称 )下 ,您需要添加 AllowedBots ,在 Tag Value( 标签值 )中,您需要添加错误消息中显示的值。 此值的格式为 {envId}/{schemaName}。 如果需要允许多个 Copilot,请用逗号分隔值。 完成后,选择确定

  11. 选择 Apply(应用 以将标签应用于密钥。

  12. 返回。 Copilot Studio 选择 Test your 助手 (测试你的 # 窗格中刷新)。

  13. 在测试窗格中,使用主题的开始短语之一再次测试您的主题。

密钥的值应显示在测试面板中。

添加标记以允许环境中的所有 Copilot 访问 Azure Key Vault 中的机密

Alternatively,可以允许环境中的所有 Copilot 访问 Azure Key Vault 中的机密。 要完成此任务,请跟随执行以下步骤:

  1. 转到 Azure Key Vault。 在左侧导航栏中,选择 Objects(对象)下的 Secrets(机密 信息)。 通过选择名称来选择要在其中使用的 Copilot Studio 密钥。
  2. 选择密钥的版本。
  3. 选择 Tags(标签) 旁边的 0 tags(0 标签 添加 Tag name(标签名称和 Tag value(标签值)。 在 Tag Name(标签名称 )下 ,添加 AllowedEnvironments 和 Tag Value( 标签值 )下,添加要允许的环境的环境 ID。 完成时,选择 确定
  4. 选择 Apply(应用 以将标签应用于密钥。

限制

引用 Azure Key Vault 机密的环境变量目前仅限于与 Power Automate 流、 Copilot Studio 代理和自定义连接器一起使用。

另请参见

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