BlackOps站点管理
Clawdbot控制
Azure Identity是微软官方Python SDK的身份认证组件,支持通过Microsoft Entra ID(原Azure AD)获取访问令牌。该库提供多种凭证类型,覆盖本地开发、CI/CD流水线及Azure云环境的统一认证方案。
开发团队使用Azure Identity可统一解决Python应用的身份认证问题。无论本地调试、CI/CD部署还是生产环境,无需修改代码即可自动适配最佳认证方式,降低多环境配置复杂度,同时避免密钥硬编码带来的安全隐患。
落地案例:某数据团队需将本地Python脚本迁移至Azure虚拟机运行。原先使用服务主体密钥的代码,通过DefaultAzureCredential自动识别:本地开发时复用VS Code登录状态,云上运行时切换为虚拟机托管标识,全程无需改动业务代码或暴露敏感凭证。
安装指令
pip install azure-identity
基础用法
1. 配置环境变量(服务主体场景):
export AZURE_TENANT_ID=<租户ID>
export AZURE_CLIENT_ID=<应用ID>
export AZURE_CLIENT_SECRET=<密钥>
2. 代码中使用DefaultAzureCredential:
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
credential = DefaultAzureCredential()
client = BlobServiceClient(
account_url="https://<账户>.blob.core.windows.net",
credential=credential
)
3. 自定义凭证链(排除不需要的认证方式):
credential = DefaultAzureCredential(
exclude_environment_credential=True,
managed_identity_client_id="<用户分配MI的客户端ID>"
)
4. 直接使用托管标识:
from azure.identity import ManagedIdentityCredential
credential = ManagedIdentityCredential() # 系统分配
credential = ManagedIdentityCredential(client_id="<用户分配MI的客户端ID>") # 用户分配
5. 异步场景:
from azure.identity.aio import DefaultAzureCredential
# 使用async with管理客户端生命周期,最后调用await credential.close()
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | 环境变量(AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRET)、托管标识配置、目标资源URL、用户指定的凭证排除选项 |
| 输出 | Microsoft Entra ID访问令牌、令牌元数据(过期时间)、认证失败时的异常详情 |
| 适用人群 | Python后端开发者、DevOps工程师、云架构师、需要集成Azure服务的数据工程师 |
| 不包含 | 具体的Azure服务操作(如Blob上传下载)、其他云厂商的认证协议、可视化登录界面 |
原始链接:https://github.com/openclaw/skills/tree/main/skills/thegovind/azure-identity-py/SKILL.md
来源类型:GitHub仓库