Azure OpenAI 支持的身份验证方法

已完成 100 XP

Azure OpenAI 支持多种身份验证方法,确保用户以安全且受控的方式访问其资源。 主要方法是:

  • API 密钥:Azure OpenAI 还支持基于 API 密钥的身份验证。 API 密钥在 Azure 门户内生成,可用于验证对 Azure OpenAI 服务的请求。 从安全角度来看,不建议使用这种身份验证方法,应仅用作最后的手段。 如果必须使用这种身份验证方法,请务必安全地处理 API 密钥并定期轮换,以降低未经授权访问的风险。
  • Microsoft Entra ID:此方法利用 Microsoft Entra 的可靠身份和访问管理功能。 用户和应用程序使用 Microsoft Entra 标识进行身份验证,可以是传统用户帐户或托管标识。 此方法可确保只有经过身份验证和授权的用户才能访问 Azure OpenAI 资源。
  • Entra 托管标识:Azure 资源的托管标识会为 Microsoft Entra 中的应用程序提供一个自动托管标识,可以在连接到支持 Microsoft Entra 身份验证的资源时使用。 这些标识可以是系统分配的,这意味着它们与特定的 Azure 资源绑定;或是用户分配的,这允许跨多个资源共享单个标识。 托管标识消除了应用程序代码中对硬编码凭据的需求,从而简化了凭据的管理并增强了安全性。

为什么托管标识比 API 密钥更安全

出于以下几个原因,Microsoft Azure 中的托管标识提供了比 API 密钥更安全的替代方案:

  1. 托管标识无需开发人员直接处理凭据,从而降低意外暴露或滥用的风险。
  2. 使用 API 密钥时,开发人员必须将这些密钥嵌入其应用程序代码或配置文件中。

API 密钥可能会通过源代码存储库、日志或其他方式无意中泄露。 这种泄露可能导致未经授权的访问和潜在的安全漏洞。 相比之下,托管标识为应用程序在连接到支持 Microsoft Entra(以前称为 Azure AD)身份验证的资源时提供自动管理的标识。 这意味着凭据不会存储在应用程序代码中,从而降低泄漏和未经授权的访问的风险。

此外,托管标识允许 Azure 服务安全地向其他 Azure 服务进行身份验证,从而简化身份验证过程,而无需显式凭据。 这是通过使用 Microsoft Entra 颁发的令牌实现的,系统会自动管理和轮换这些令牌,从而确保凭证始终保持最新,并降低凭据被盗的风险。 另一方面,API 密钥是静态的并且需要手动轮换,这容易出错并且经常被忽视,从而导致潜在的漏洞。 通过使用托管标识,开发人员可以利用 Azure 的内置安全功能,例如基于角色的访问控制 (RBAC),向资源授予精确权限,从而进一步增强安全性。

Microsoft 建议在向 Azure OpenAI 或任何其他支持托管标识的 Azure 服务进行身份验证时使用托管标识而不是 API 密钥。

在 Azure OpenAI 中使用 API 密钥和托管标识之间的差异

让我们评估一下客户端 ID 泄露与 API 密钥泄露的影响。

API 密钥的功能类似于常规密码。 如果遭到泄露,任何拥有密钥的用户都可以访问该资源。 对于 Azure OpenAI 而言,这意味着可以不受限制地使用 GPT-4 等 AI 模型。 如果网络可公开访问,则可能产生更大的安全影响。

相反,如果客户端 ID 遭到泄露,风险就很小。 这是因为无法仅使用客户端 ID 与 Azure OpenAI 建立连接。 若要使用托管标识,服务必须在 Azure 上运行,即使 Azure OpenAI 是公开的,也不能使用应用程序从本地环境或通过网络连接。

总而言之,API 密钥遭到泄露的后果相比,利用泄露的客户端 ID 涉及多个步骤,这使得恶意行为者更难实现攻击。

由于这些原因,与 API 密钥相比,托管标识提供了一种更安全的管理操作方法。 我们强烈建议你在向 Azure OpenAI 或任何其他支持托管标识的 Azure 服务进行身份验证时使用托管标识而不是 API 密钥。

系统分配的标识与用户分配的标识的比较情况

在构建 Azure OpenAI 应用程序时,了解系统分配的标识和用户分配的标识之间的区别对于实现最佳安全性和资源管理至关重要。

  • 系统分配的标识由 Azure 为特定资源创建和管理。 当删除资源时,其关联的系统分配的标识也会被删除,从而确保标识生命周期与其所属的资源紧密结合。 这种类型的标识非常适合只需要由单个资源使用标识的场景,Azure 会负责管理标识的凭据,因此可以简化操作并减少管理开销。
  • 用户分配的标识独立于任何特定资源创建,并且可以在多个资源之间共享。 这使得它们具备通用性,适合需要在不同资源间使用一致标识的应用程序,从而便于更轻松地管理权限和访问控制。 即使系统删除了使用用户分配的标识的资源,用户分配的标识也会保留,从而允许更灵活地重新部署和重复使用标识。

对于系统分配的标识和用户分配的标识,选择方式取决于应用程序的特定需求。 如果应用程序使用单一资源,同时优先考虑易用性和尽量减少管理工作量,系统分配的标识通常是最佳选择。 相反,对于需要在多个资源间共享标识的应用程序,用户分配的标识可提供更大的灵活性和可重用性。

显示不同托管标识选项的关系图。


下一单元: 为 Azure OpenAI 标识配置 RBAC

上一篇 下一步