你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

保护 Azure 密钥保管库中的身份验证机密

配置自定义身份验证提供程序时,可能需要将连接机密存储在 Azure Key Vault 中。 本文演示了如何使用托管标识来授予 Azure Static Web Apps 访问 Key Vault 的权限以获取自定义身份验证机密。

注意

Azure 无服务器函数不支持直接密钥保管库集成。 如果需要将密钥保管库与托管函数应用集成,则需要实现对应用代码的密钥保管库访问权限。

安全机密要求准备好以下项。

  • 在 Static Web Apps 实例中创建系统分配的标识。
  • 授予标识对 Key Vault 机密的访问权限。
  • 从 Static Web Apps 应用程序设置引用 Key Vault 机密。

本文演示如何在生产中为自带函数应用程序设置每一项。

Key Vault 集成不适用于:

注意

只能在 Azure Static Web Apps 标准计划中使用托管标识。

先决条件

  • 使用自带函数的现有 Azure Static Web Apps 站点。
  • 现有带机密值的 Key Vault 资源。

创建标识

  1. 在 Azure 门户中打开 Static Web Apps 站点。

  2. 在“设置”菜单下,选择“标识”。

  3. 选择“系统分配”选项卡。

  4. 在“状态”标签下,选择“开”。

  5. 选择“保存”。

    Add system-assigned identity

  6. 在出现确认对话框时选择“是”。

    Confirm identity assignment.

现在可以添加访问策略,以允许静态 web 应用读取 Key Vault 机密。

添加 Key Vault 访问策略

  1. 在 Azure 门户中打开 Key Vault 资源。

  2. 在“设置”菜单下,选择“访问策略”。

  3. 选择链接,“添加访问策略”。

  4. 从“机密权限”下拉列表中,选择“获取”。

  5. 下一步至“选择主体”标签,选择“未选择任何项”链接。

  6. 在搜索框中,搜索 Static Web Apps 应用程序名称。

  7. 选择与应用程序名称匹配的列表项。

  8. 选择选择

  9. 选择添加

  10. 选择“保存”。

    Save Key Vault access policy

访问策略现已保存到 Key Vault。 接下来,将静态 web 应用关联到 Key Vault 资源时,访问要使用的机密 URI。

  1. 在“设置”菜单下,选择“机密”

  2. 从列表中选择所需机密。

  3. 从列表中选择所需机密版本。

  4. 选择“机密标识符”文本框末尾的“复制”,将机密 URI 值复制到剪贴板。

  5. 将此值粘贴到文本编辑器中以供以后使用。

添加应用程序设置

  1. 在 Azure 门户中打开 Static Web Apps 站点。

  2. 在“设置”菜单下,选择“配置”。

  3. 在“应用程序设置”部分下,选择“添加”。

  4. 在“名称”字段的文本框中输入名称。

  5. 在“值”字段的文本框中确定机密值。

    机密值是几个不同值的组合。 以下模板演示了如何生成最终字符串。

    @Microsoft.KeyVault(SecretUri=<YOUR-KEY-VAULT-SECRET-URI>)
    

    例如,最终字符串如以下示例所示:

    @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
    

    也可使用以下命令:

    @Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret)
    

    使用以下步骤来生成完整的机密值。

  6. 复制上面的模板,并将其粘贴到文本编辑器中。

  7. <YOUR-KEY-VAULT-SECRET-URI> 替换为前面先设置的 Key Vault URI 值。

  8. 复制新的完整字符串值。

  9. 将该值粘贴到“值”字段的文本框中。

  10. 选择“确定”

  11. 选择“应用程序设置”工具栏顶部的“保存”。

    Save application settings

现在,当自定义身份验证配置引用新创建的应用程序设置时,将使用静态 web 应用的标识从 Azure Key Vault 提取值。

后续步骤