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

如何使用Python/Azure Databricks向Azure AD组添加成员?

在Azure Databricks中用Python批量添加服务主体到Azure AD组

步骤1:安装依赖包

在Databricks笔记本中运行以下命令安装Microsoft Graph Python SDK及身份认证库:

%pip install msgraph-sdk azure-identity

步骤2:配置身份权限

确保你用于认证的身份(Databricks工作区托管身份或自定义服务主体)拥有Microsoft Graph应用权限 GroupMember.ReadWrite.All,并已获得管理员同意:

  • 登录Azure门户,找到目标身份(托管身份/服务主体)
  • 进入「API权限」→「添加权限」→选择「Microsoft Graph」→「应用权限」
  • 搜索并勾选GroupMember.ReadWrite.All,点击「添加权限」
  • 点击「授予管理员同意」完成权限配置

步骤3:Python实现代码

以下脚本通过Microsoft Graph API批量将服务主体添加到指定Azure AD组:

import asyncio
from msgraph import GraphServiceClient
from azure.identity import DefaultAzureCredential

async def batch_add_sp_to_ad_group():
    # 初始化Graph客户端,自动使用Databricks托管身份认证
    credential = DefaultAzureCredential()
    graph_client = GraphServiceClient(credential, scopes=["https://graph.microsoft.com/.default"])

    # 替换为你的AD组Object ID和服务主体Object ID列表
    base_ad_group_object_id = "YOUR_GROUP_OBJECT_ID"
    service_principals = ["SP_OBJECT_ID_1", "SP_OBJECT_ID_2", "SP_OBJECT_ID_3"]

    for sp_object_id in service_principals:
        try:
            # 调用Graph API添加组成员
            await graph_client.groups.by_group_id(base_ad_group_object_id).members.ref.post(
                body={"@odata.id": f"https://graph.microsoft.com/v1.0/directoryObjects/{sp_object_id}"}
            )
            print(f"✅ 服务主体 {sp_object_id} 已成功添加到组")
        except Exception as e:
            print(f"❌ 添加服务主体 {sp_object_id} 失败: {str(e)}")

# 执行异步任务
asyncio.run(batch_add_sp_to_ad_group())

可选:使用自定义服务主体认证

如果不使用托管身份,可通过服务主体密钥认证,修改初始化部分代码:

from azure.identity import ClientSecretCredential

# 替换为你的租户ID、客户端ID、客户端密钥
tenant_id = "YOUR_TENANT_ID"
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

credential = ClientSecretCredential(tenant_id, client_id, client_secret)
graph_client = GraphServiceClient(credential, scopes=["https://graph.microsoft.com/.default"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:58:35