{ "answer": "用于 Python 身份验证的 Azure Identity SDK。适用于 DefaultAzureCredential、托管标识、服务主体和令牌缓存。" }
Azure Idition SDK for Python.是一项面向实际任务的技能,主要用于Azure SDK 客户端使用Microsoft Entra ID(原Azure AD)的认证库.;Environment 变量: Default AzureCredititive. 建议的证书 f。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
面向使用 Microsoft Entra ID(原 Azure AD)进行身份验证的 Azure SDK 客户端的身份验证库。
pip install azure-identity
# 服务主体(适用于生产环境/CI) AZURE_TENANT_ID=AZURE_CLIENT_ID= AZURE_CLIENT_SECRET= # 用户分配的托管标识(可选) AZURE_CLIENT_ID=
大多数场景下推荐使用的凭据类型。它按顺序尝试多种身份验证方法:
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
# 在本地开发和生产环境中均可运行,无需修改代码
credential = DefaultAzureCredential()
client = BlobServiceClient(
account_url="https://.blob.core.windows.net",
credential=credential
)
| 顺序 | 凭据类型 | 适用环境 |
|---|---|---|
| 1 | EnvironmentCredential | CI/CD、容器环境 |
| 2 | WorkloadIdentityCredential | Kubernetes |
| 3 | ManagedIdentityCredential | Azure 虚拟机、App Service、Functions |
| 4 | SharedTokenCacheCredential | 仅限 Windows |
| 5 | VisualStudioCodeCredential | 安装了 Azure 扩展的 VS Code |
| 6 | AzureCliCredential | az login |
| 7 | AzurePowerShellCredential | Connect-AzAccount |
| 8 | AzureDeveloperCliCredential | azd auth login |
# 排除不需要的凭据类型
credential = DefaultAzureCredential(
exclude_environment_credential=True,
exclude_shared_token_cache_credential=True,
managed_identity_client_id="" # 指定用户分配的托管标识 client_id
)
# 启用交互式浏览器登录(默认禁用)
credential = DefaultAzureCredential(
exclude_interactive_browser_credential=False
)
适用于部署在 Azure 上的资源(如虚拟机、App Service、Functions、AKS):
from azure.identity import ManagedIdentityCredential
# 使用系统分配的托管标识
credential = ManagedIdentityCredential()
# 使用用户分配的托管标识
credential = ManagedIdentityCredential(
client_id=""
)
适用于使用密钥的服务主体:
from azure.identity import ClientSecretCredential
credential = ClientSecretCredential(
tenant_id=os.environ["AZURE_TENANT_ID"],
client_id=os.environ["AZURE_CLIENT_ID"],
client_secret=os.environ["AZURE_CLIENT_SECRET"]
)
使用 az login 登录的账户:
from azure.identity import AzureCliCredential credential = AzureCliCredential()
自定义凭据链:
from azure.identity import (
ChainedTokenCredential,
ManagedIdentityCredential,
AzureCliCredential
)
# 优先尝试托管标识,失败后回退至 Azure CLI
credential = ChainedTokenCredential(
ManagedIdentityCredential(client_id=""),
AzureCliCredential()
)
| 凭据类型 | 适用场景 | 认证方式 |
|---|---|---|
DefaultAzureCredential |
大多数场景 | 自动检测 |
ManagedIdentityCredential |
Azure 托管的应用程序 | 托管标识 |
ClientSecretCredential |
服务主体 | 客户端密钥 |
ClientCertificateCredential |
服务主体 | 证书 |
AzureCliCredential |
本地开发 | Azure CLI |
AzureDeveloperCliCredential |
本地开发 | Azure Developer CLI |
InteractiveBrowserCredential |
用户登录场景 | 浏览器 OAuth |
DeviceCodeCredential |
无头环境 / SSH 场景 | 设备代码流程 |
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# 获取指定作用域的令牌
token = credential.get_token("https://management.azure.com/.default")
print(f"令牌过期时间:{token.expires_on}")
# 获取 Azure Database for PostgreSQL 的令牌
token = credential.get_token("https://ossrdbms-aad.database.windows.net/.default")
from azure.identity.aio import DefaultAzureCredential
from azure.storage.blob.aio import BlobServiceClient
async def main():
credential = DefaultAzureCredential()
async with BlobServiceClient(
account_url="https://.blob.core.windows.net",
credential=credential
) as client:
# ... 执行异步操作
pass
await credential.close()
async with)确保资源释放相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章