
随着大语言模型在行业的落地,Azure OpenAI 利用最先进的深度神经网络模型支撑客户制作性能卓越的 AI 应用。与此同时,我们也意识到安全性的重要性。相比于直接使用 API Key,Azure Active Directory(AAD)提供了一个有效的解决方案,基于 RBAC 机制,无须使用 API Key,可以帮助您保护 Azure OpenAI 服务。

◉ 图片来源:Matt Felton
01
创建 AAD 服务主体:服务主体是一个特殊的安全主体,代表您注册的 AAD 应用程序。您需要为您的 OpenAI 服务创建一个服务主体,并将其与您的 AAD 实例关联。
分配角色和权限:为服务主体分配适当的角色和权限,以便它可以访问您的 OpenAI 服务。这些权限可以根据您的需求进行调整,以实现最佳的安全性和功能。
获取访问令牌:在您的应用程序中,使用托管标识或客户端凭据(密钥或证书)来获取 AAD 访问令牌。访问令牌是一种安全机制,用于验证调用 API 的实体是否具有适当的权限。
调用 API:使用访问令牌调用 Azure OpenAI 服务的 API。API 将验证访问令牌,确保请求来自经过身份验证和授权的实体。如果具有 OpenAI 服务的用户访问权限,即可正常调用 OpenAI 服务。
02
打开 Azure Portal (https://portal.azure.com),点击首页的“Azure Active Directory”。

点击左侧的“应用注册”菜单。

点击注册按钮,并填写基本信息以添加 AAD 应用,即服务主体。

记录并保存该应用的应用程序(客户端)ID 和租户(目录)ID 信息。

点击“证书和密码”菜单,添加密钥,有效期最长可以是 2 年,并记录密钥值。这三个信息将会用于获取 Azure AD 的令牌以访问 OpenAI 服务。




打开您的 OpenAI 服务实例,点击左侧菜单中的访问。

点击“添加角色分配”按钮。

在角色列表中查找“OpenAI User”角色,选中后点击“下一步”。

点击“选择成员”,选择 AAD 应用作为授权目标。


点击“审阅和分配”按钮分配角色权限。


此时通过 AAD RBAC 即可访问 OpenAI 服务。
03
OpenAI 官方 SDK 支持 AAD 访问,因此我们只需要将 openai.api_key 设置为 AAD 应用获取的令牌即可。示例代码如下:

其中 AAD 令牌的获取需要使用 azure.identity 库,可以通过应用密钥或证书从 AAD 颁发令牌。如果您更倾向于通过 Rest API 调用,那么获取令牌的方式如下:Host: https://login.microsoftonline.com/{tenant id}/oauth2/v2.0/token


AAD 不仅提供身份验证,还通过其他一些功能提高安全性。例如,它可以限制访问,只允许特定的用户或组访问特定的 AI 服务。此外,还可以设置条件策略,例如在检测到不寻常的用户行为或来自新位置的尝试访问时触发警报。
此外,通过 AAD 保护的 Azure OpenAI 服务还提供详细的审计日志,可以追踪所有用户的活动。这可以帮助识别任何潜在的威胁,并限制对服务的非法访问。
使用 AAD 保护 Azure OpenAI 服务不仅可以确保服务的安全性,同时也可以提升公司的信任度。具有强大的安全防护机制,使得您的 AI 应用成为一个可信赖的解决方案。用户可以安心地使用这项应用,同时确保他们的数据安全。
总结,保护 Azure OpenAI 服务的最佳途径之一就是使用 Azure Active Directory。无论您是公司内部员工,还是外部用户,AAD 都为您提供了一系列的工具,以确保只有经过授权的人员才能访问您的 Azure OpenAI 服务。这提供了一个几乎无懈可击的防护层,您的 AI 应用将更安全,更可信赖。
本文转载自|Azure 上云直升机
作者|张昌伟







