You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何选择Azure账户实现多租户资源的Python标签检查脚本运行?

跨多租户访问Azure资源的可行方案

方案1:基于多租户授权的个人Azure账户

  • 确保你的个人账户在每个目标租户中都拥有身份权限(比如访客用户、Reader角色等)
  • 在Python脚本中针对每个租户单独完成身份验证:
    • 使用azure-identity库的InteractiveBrowserCredential,每次请求不同租户时指定tenant_id参数,触发对应租户的登录流程或调用缓存的令牌
    • 示例代码片段:
      from azure.identity import InteractiveBrowserCredential
      from azure.mgmt.resource import ResourceManagementClient
      
      # 按租户ID分组CSV中的资源,批量处理
      for tenant_id, resources in grouped_resources.items():
          credential = InteractiveBrowserCredential(tenant_id=tenant_id)
          resource_client = ResourceManagementClient(credential, "<目标订阅ID>")
          # 执行资源标签检查逻辑
      
  • 这种方式无需依赖Azure CLI的登录状态,直接在脚本内完成多租户认证切换

方案2:多租户服务主体

  • 将服务主体配置为多租户应用:在Azure AD注册应用时,把"支持的账户类型"设置为"任何组织目录中的账户"
  • 在每个目标租户中,给这个多租户服务主体分配对应资源的访问权限(比如Reader角色)
  • 脚本中使用ClientSecretCredential,针对不同租户传入对应的tenant_id即可完成认证:
    from azure.identity import ClientSecretCredential
    from azure.mgmt.resource import ResourceManagementClient
    
    client_id = "<你的应用客户端ID>"
    client_secret = "<你的应用客户端密钥>"
    
    for tenant_id, resources in grouped_resources.items():
        credential = ClientSecretCredential(
            tenant_id=tenant_id,
            client_id=client_id,
            client_secret=client_secret
        )
        resource_client = ResourceManagementClient(credential, "<目标订阅ID>")
        # 执行资源标签检查逻辑
    

方案3:Azure CLI多账户管理

  • 利用Azure CLI的多账户缓存能力,将多个租户的账户添加到本地列表:
    1. 登录主租户账户:az login
    2. 添加其他租户账户:az account add --tenant <租户ID> --username <你的账户名>
    3. 脚本中使用AzureCliCredential,每次访问不同租户前通过az account set --tenant <租户ID>切换上下文,或直接在AzureCliCredential中指定tenant_id参数

核心注意事项

  • 无论采用哪种方案,每个目标租户都必须为你的身份(用户或服务主体)分配足够权限(至少需要Reader角色来读取资源标签)
  • 处理CSV时建议先按租户ID分组资源,减少重复认证次数,提升脚本执行效率

内容的提问来源于stack exchange,提问作者Louey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:12:41