Azure ManagedOnlineEndpoint(SDK-v2)能否绕过密钥/令牌认证?
Azure ManagedOnlineEndpoint 用托管身份替代密钥认证的方案
可以通过Azure托管身份(Managed Identity)来绕过API密钥/令牌认证,这是比你当前用KeyVault存储密钥更简洁的方案,具体实现步骤如下:
- 为每个次级ManagedOnlineEndpoint配置托管身份:可选择系统分配(与端点生命周期绑定)或用户分配(独立管理)的托管身份,启用后端点会获得专属Azure AD身份标识。
- 为主模型所在的ManagedOnlineEndpoint的托管身份授予权限:在Azure ML工作空间中,给主端点的身份分配次级端点的
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/invoke/action权限,确保主端点具备调用次级端点的权限。 - 修改主模型的评分脚本:使用Azure SDK获取托管身份的访问令牌,携带该令牌调用次级端点API,示例代码片段如下:
from azure.identity import DefaultAzureCredential import requests # 获取托管身份令牌 credential = DefaultAzureCredential() token = credential.get_token("https://ml.azure.com/.default") # 调用次级端点 headers = { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } response = requests.post("次级端点URL", json=输入数据, headers=headers)
这种方案的优势在于:无需手动存储和管理API密钥,完全依托Azure身份管理体系,既降低了密钥泄露风险,又省去了评分脚本中密钥检索的额外逻辑,流程更简洁高效。
内容的提问来源于stack exchange,提问作者Jhons D
相关产品推荐
相关产品推荐

