无需Azure CLI,如何通过Python SDK/API编程登录Azure?
无需Azure CLI的Python Azure服务主体认证方案
你可以直接使用Azure官方Python SDK中的azure-identity库实现服务主体认证,完全不需要依赖Azure CLI,以下是具体步骤和代码示例:
1. 安装必要依赖
首先安装认证及资源管理相关的Python包:
pip install azure-identity azure-mgmt-resource
2. 认证代码示例
使用服务主体的客户端ID、客户端密钥、租户ID完成认证,并指定目标订阅:
from azure.identity import ClientSecretCredential from azure.mgmt.resource import SubscriptionClient # 替换为你的实际凭证信息 TENANT_ID = "<tenant_id>" CLIENT_ID = "<user_credentials>" # 对应CLI命令中的-u参数 CLIENT_SECRET = "<password>" # 对应CLI命令中的-p参数 SUBSCRIPTION_ID = "<subscription_id>" # 创建服务主体凭证实例 credential = ClientSecretCredential( tenant_id=TENANT_ID, client_id=CLIENT_ID, client_secret=CLIENT_SECRET ) # 验证认证并获取订阅信息(示例操作) subscription_client = SubscriptionClient(credential) target_subscription = subscription_client.subscriptions.get(SUBSCRIPTION_ID) print(f"已成功认证并切换到订阅: {target_subscription.display_name} (ID: {target_subscription.subscription_id})")
关键参数对应说明
CLIENT_ID:对应你原CLI命令中-u后的服务主体IDCLIENT_SECRET:对应原CLI命令中-p后的服务主体密钥TENANT_ID:对应原CLI命令中--tenant后的租户IDSUBSCRIPTION_ID:对应原CLI命令中az account set -s后的订阅ID
额外说明
- 如果需要操作其他Azure服务(如存储、虚拟机等),只需安装对应管理包(如
azure-mgmt-storage),并使用同一个credential对象初始化对应服务的客户端即可。 - 生产环境中建议通过环境变量或密钥管理服务存储凭证,避免硬编码明文信息。
内容的提问来源于stack exchange,提问作者Timmy Suntichaiwakin
相关产品推荐
相关产品推荐

