You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python应用中使用托管身份访问Azure AI服务?

关于Azure托管身份访问AI服务的问题解答

一、如何通过托管身份实现无密码访问Azure AI服务

核心是借助Azure托管身份自动获取访问令牌,无需在代码或配置文件中硬编码密码/密钥:

  • 为应用的运行载体(本地开发环境、云主机、App Service等)分配托管身份(系统分配型或用户分配型均可,用户分配型灵活性更高)
  • 为该托管身份在目标Azure AI服务资源(或其所属资源组)分配Cognitive Services User或Cognitive Services Contributor等适配角色,确保其具备访问文本分析服务的必要权限

二、Visual Studio本地运行时能否使用托管身份

可以直接在Visual Studio本地运行代码,无需部署到VM:

  • 确保Visual Studio已登录你的Azure账户(该账户需具备对应Azure AI服务的访问权限,或已被分配合适角色)
  • 借助Azure Identity库的DefaultAzureCredential组件,它会自动优先使用Visual Studio登录的身份获取访问令牌

三、角色分配的层级选择

不建议在订阅级别分配角色(权限范围过大,存在安全风险),推荐以下层级:

  • Azure AI服务资源级别:仅针对目标AI服务资源分配权限,遵循最小权限原则,安全性最高
  • 资源组级别:若同一资源组内有多个AI服务需要统一权限管理,可选择此层级

四、Python代码的修改示例

使用azure-identity和azure-ai-textanalytics库替换原服务主体认证逻辑,实现无密码访问:

  1. 安装依赖:
pip install azure-identity azure-ai-textanalytics
  1. 核心代码示例:
from azure.ai.textanalytics import TextAnalyticsClient
from azure.identity import DefaultAzureCredential

# 初始化凭证,自动适配本地开发(Visual Studio登录)或云环境(托管身份)
credential = DefaultAzureCredential()

# 初始化文本分析客户端
text_analytics_client = TextAnalyticsClient(
    endpoint="你的Azure AI服务端点",
    credential=credential
)

# 调用文本分析服务示例
documents = ["我今天很开心"]
response = text_analytics_client.analyze_sentiment(documents=documents)
for doc in response:
    print(f"情感分析结果: {doc.sentiment}")

DefaultAzureCredential会自动尝试多种认证方式:Visual Studio登录身份、Azure CLI登录身份、云环境中的托管身份等,无需手动指定认证类型。

内容的提问来源于stack exchange,提问作者Manu Chadha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:20:04