我正在使用Azure OpenAI服务,并希望测试其托管身份支持。根据文档,它支持托管身份认证,例如-使用VM。
所以我做了以下事情:
1.在Azure中创建VM
1.为它分配了一个托管标识
1.在OpenAI资源上为该身份分配“认知服务用户”角色(根据文档)
1.已将Postman下载到VM
1.尝试在没有API Key的情况下访问OpenAI API(这就是重点,不是吗?)
但是我一直收到401错误。
我错过了什么?对于其他服务,具有经过身份验证的托管身份的VM可以访问该服务(即存储帐户、KeyVault)。为什么这里不起作用?
谢谢!
2条答案
按热度按时间lx0bsm1f1#
为了访问Azure Open AI服务,您仍然需要身份验证标头。
配置托管标识的区别在于,您还可以使用访问令牌来访问服务,而不是使用API密钥。
您可以参考https://github.com/openai/openai-python#microsoft-azure-active-directory-authentication,了解如何获取具有托管身份的访问令牌。
(我是Azure SDK团队的Microsoft员工。
pqwbnv8z2#
Tried to access OpenAI API without the API Key (that's the whole point, isn't it?)
不完全正确。托管身份意味着您在(并且仅在)链接到您的目的地(AoAI)的资源(在您的情况下是VM)内生成JWT令牌。您将使用托管身份(没有app-id/secret或静态密钥)实现无密码请注意,如果您记录此令牌(在大多数资源中,它在24小时内有效)并尝试从本地访问API,它仍然可以工作-因此您需要将防火墙设置限制为AoAI中的azure-network。