Azure Identity Python 认证技能
为 Python Azure 应用提供基于 Microsoft Entra ID 的可复用身份认证指导。
文档倡导使用 Entra、托管身份、环境变量和凭据上下文管理器,并警告不要硬编码凭据及不要使用未加密缓存;但 DefaultAzureCredential 默认会尝试多种本地凭据,调试日志可能暴露敏感认证信息,示例还展示了允许任意租户的通配符,未充分说明最小权限、确认、数据流和恢复边界,因此扣分。
主文档与参考文档在同步、异步、缓存、错误处理和日志方面大体一致,并提供异常类型和诊断信息;但 Python 包版本未锁定,当前 API 链顺序和参数依赖外部文档,未提供针对该技能关键路径的可执行测试,因此按静态上限保守扣分。
触发词、目标用户和典型环境覆盖较清晰,包括本地开发、Azure 托管、CI/CD、桌面和无头设备;但未明确非适用场景、权限前提、输入输出边界或语义误触发条件,中文说明缺失,仅通过中国云 authority 示例部分支持中国环境,因此扣分。
具备 front matter、MIT 许可、作者、版本、安装说明、分层参考文件、场景矩阵和外部 API 参考;但缺少该技能专属 changelog、依赖版本策略、维护责任人的明确更新路径、FAQ 和完整限制说明,且部分参考内容重复,因此扣分。
覆盖 DefaultAzureCredential、托管身份、服务主体、工作负载身份、令牌提供器、异步和错误处理,代码片段对常见认证任务具有直接参考价值;但多数示例使用占位符,未展示端到端验证结果、权限配置或与替代方案的比较,静态审查不能确认代码在目标版本上可直接运行,因此按静态上限计分。
文档提供 Microsoft Learn、PyPI 和 Azure SDK 源码等可追溯主来源,仓库还提供通用 CI、评估工作流和测试工具;但所给材料没有证明该技能关键路径已被专项测试或独立复现,来源也未在技能内容中绑定具体版本,因此不超过静态上限。
- DefaultAzureCredential 可能意外使用开发者本地登录状态;生产环境应显式限制凭据链并审查其权限。
- 不要在生产环境启用未加密持久化缓存或无筛选的调试日志;避免使用 additionally_allowed_tenants=["*"],除非已完成明确的租户边界审查。
- 安装命令未锁定 azure-identity 版本,使用前应核对当前 API、依赖和云环境支持情况。
- 这是静态文档评估,未执行示例、认证流程或专项测试。
它能做什么 & 适用场景
此技能面向使用 Azure SDK 的 Python 开发者,覆盖 DefaultAzureCredential、托管身份、服务主体和直接令牌获取。它提供安装命令、环境变量、同步与异步代码示例,以及凭据链定制、持久化缓存、多租户和错误处理方法。内容还涵盖主权云、Azure Pipelines、AKS 工作负载身份和非 Azure SDK 客户端的 bearer token provider。该技能适合需要统一本地开发、云端部署和 CI/CD 认证方式的项目。
指导用户安装 azure-identity,并配置租户、客户端、密钥、证书、主权云和托管身份相关环境变量;生成使用 DefaultAzureCredential、ManagedIdentityCredential、ClientSecretCredential 等凭据的 Python 代码;展示 get_token()、get_bearer_token_provider()、同步/异步客户端、凭据链、令牌缓存、日志和异常处理;根据运行环境推荐凭据类型。
- 本地开发者需要让 Python Azure SDK 客户端通过 Azure CLI、VS Code 或其他开发凭据登录。
- Azure App Service、Functions 或虚拟机上的应用需要使用托管身份访问 Azure 服务。
- 团队需要用客户端密钥、证书或工作负载身份配置服务主体认证。
- AKS 工作负载需要通过 Microsoft Entra Workload ID 获取令牌。
- 应用需要为 Azure OpenAI 等非 Azure SDK 客户端提供 bearer token。
优缺点一览
- 覆盖本地开发、Azure 托管环境、CI/CD、桌面应用和无头工具等多种认证场景。
- 提供同步和异步 API、凭据链顺序、环境变量、错误分类与调试日志示例。
- 强调 DefaultAzureCredential、托管身份、凭据复用和上下文管理器等生产实践。
- 明确列出 Python 版本要求、凭据类型和参考链接。
- 技能只提供指导和示例,不包含可直接运行的完整项目或自动化部署流程。
- 示例依赖 Azure 服务、身份配置和网络访问;实际权限、租户设置和服务端配置未在技能中完成。
- README 的测试覆盖摘要没有明确证明该单个技能拥有独立测试场景。
- 持久化令牌缓存、证书认证和多租户配置需要使用者自行评估安全策略。
如何安装
在 Copilot CLI 或兼容的技能安装流程中运行 npx skills add microsoft/skills,在向导中选择 azure-identity-py。集合会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。README 未提供该单个插件路径的独立安装命令。
如何使用
在编码请求中使用触发词,例如:请用 azure-identity 和 DefaultAzureCredential 为 Python Blob Storage 客户端配置本地开发与 Azure 部署认证,并正确关闭凭据和客户端。 对 Azure 托管工作负载、服务主体、AKS 工作负载身份、令牌缓存或凭据链故障排查,可直接说明对应场景。