Agent Skills
返回列表
💻

Azure Identity Python 鉴权

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-identity-py-zh。

技能介绍

要解决什么问题

用 Python 调用 Azure 存储、Key Vault、OpenAI 等 SDK 时,客户端必须拿到有效的 Microsoft Entra ID 访问令牌。硬编码连接字符串或 API 密钥会绕过租户审计与密钥轮换;本地笔记本、CI 流水线、App Service、AKS 又各自有不同的登录方式,如果每种环境写一套鉴权逻辑,部署和排障成本都会很高。

技能如何帮你落地

本技能围绕官方 azure-identity 库,把「选哪种凭据、怎么拿 token、怎么接非 Azure SDK」串成可执行的决策路径:

  • 默认路径:优先 DefaultAzureCredential,在本地可走 Azure CLI / VS Code / Developer CLI,在 Azure 上可走托管标识与工作负载标识;生产环境可用 AZURE_TOKEN_CREDENTIALS 收紧凭据链。
  • 生命周期:凭据与令牌缓存建议放在 with / async with(同步与 azure.identity.aio 异步分开,勿混用)。
  • 场景化凭据:托管资源用 ManagedIdentityCredential / WorkloadIdentityCredential;服务主体用 ClientSecretCredential、CertificateCredential(注意类名不是 ClientCertificateCredential);流水线可用 EnvironmentCredential 或 AzurePipelinesCredential;无头环境用 DeviceCodeCredential;中间层委托用户身份用 OnBehalfOfCredential。
  • 非 Azure SDK:用 get_bearer_token_provider 把凭据包装成可复用的 bearer 提供方(如 OpenAI SDK)。
  • 排障与治理:凭据链失败时可对照排除参数表缩小尝试范围;主权云通过 AzureAuthorityHosts / AZURE_AUTHORITY_HOST 切换;长时间运行服务可配置 TokenCachePersistenceOptions 减少重复换票。

技能内还提供 凭据选择矩阵 与多条生产向最佳实践(复用凭据实例、为用户分配托管标识设置 AZURE_CLIENT_ID 等)。

适用边界与注意点

  • 需要 Python 3.9+;VS Code / broker 桌面鉴权有单独安装说明,但核心仍是凭据选型与 get_token() 用法。
  • DefaultAzureCredential 会按固定顺序尝试多种来源;不用的来源应 exclude_*,否则会拖慢启动并产生误导性失败日志。
  • 证书服务主体务必使用 CertificateCredential;文档中强调该错误类名在库里不存在。
  • 更完整的非核心能力与生产检查清单见技能附带的 references/ 参考文件,本介绍不展开安装命令细节。

使用场景

  • 本地用 Python 调用 Azure SDK 访问存储或 Key Vault,希望沿用 Azure CLI 登录态,避免在仓库里提交 client secret。
  • 运行在 Azure App Service / Functions 上的 Python 服务,需要用托管标识读取配置或访问其他 Azure 资源。
  • AKS 已启用 Microsoft Entra Workload ID 的 Pod,要在应用内用 Python SDK 换取访问下游 Azure API 的令牌。
  • Azure DevOps Pipeline 中的 Python 部署或集成步骤,需通过工作负载标识联合或服务主体环境变量完成 Entra 鉴权。

适合人员

  • 负责 Azure 上 Python 服务交付、要在生产去掉连接字符串并改用托管标识或 Entra 凭据的后端开发工程师
  • 编写本地 Python 数据或运维自动化脚本、希望与 az login / VS Code 开发体验一致的 DefaultAzureCredential 行为的数据与平台工程师
  • 为 AKS、App Service 或 VM 配置 Entra 身份与 RBAC,并需要指导业务代码选用 ManagedIdentity 或 Workload Identity 的云原生平台工程师
  • 在 CI/CD 流水线中运行 Python 发布与集成任务、需落地 EnvironmentCredential 或 AzurePipelinesCredential 的 DevOps / 发布工程师