Azure active directory 如何使用GraphServiceClient c#创建AD嵌套组?

Azure active directory 如何使用GraphServiceClient c#创建AD嵌套组?,azure-active-directory,microsoft-graph-api,active-directory-group,adgroup,Azure Active Directory,Microsoft Graph Api,Active Directory Group,Adgroup,是否可以使用以下图形API客户端在Azure AD中创建嵌套组: 您可以使用附加数据在C#中创建组的步骤中添加成员 创建具有所有者和成员的安全组 明确规定。请注意,最多有20个关系,例如所有者和 成员,可以作为组创建的一部分添加 IConfidentialClientApplication-secretentialclientapplication=secretentialclientapplicationbuilder .Create(clientId) .WithTenantId(tenan

是否可以使用以下图形API客户端在Azure AD中创建嵌套组:


您可以使用
附加数据
在C#中创建组的步骤中添加成员

创建具有所有者和成员的安全组 明确规定。请注意,最多有20个关系,例如所有者和 成员,可以作为组创建的一部分添加

IConfidentialClientApplication-secretentialclientapplication=secretentialclientapplicationbuilder
.Create(clientId)
.WithTenantId(tenantID)
.WithClientSecret(clientSecret)
.Build();
ClientCredentialProvider authProvider=新的ClientCredentialProvider(机密客户端应用程序);
GraphServiceClient graphClient=新的GraphServiceClient(authProvider);
//创建组B并添加成员(user-id1和user-id2)
var additionalDataGroupB=新字典()
{
{"members@odata.bind,新列表()}
};
(附加数据[”members@odata.bind“]作为列表)。添加(”https://graph.microsoft.com/v1.0/users/{id1}”);
(附加数据[”members@odata.bind“]作为列表)。添加(”https://graph.microsoft.com/v1.0/users/{id2}”);
var groupB=新组
{
Description=“B组”,
DisplayName=“PamelaGroupB”,
GroupTypes=新列表()
{
},
MailEnabled=false,
MailNickname=“operation2019”,
SecurityEnabled=true,
AdditionalData=additionalDataGroupB
};
Group groupBRequest=await graphClient.Groups.Request().AddAsync(groupB);
字符串groupB_id=groupBRequest.id;
//创建C组
......
字符串groupC_id=groupCRequest.id;
//创建组A并添加成员(组B和组C)
var additionalDataGroupA=新字典()
{
{"members@odata.bind,新列表()}
};
(附加数据[”members@odata.bind“]作为列表)。添加(”https://graph.microsoft.com/v1.0/groups/“+groupB_id);
(附加数据[”members@odata.bind“]作为列表)。添加(”https://graph.microsoft.com/v1.0/groups/“+groupC_id);
var groupA=新组
{
Description=“A组”,
DisplayName=“PamelaGroupA”,
GroupTypes=新列表()
{
},
MailEnabled=false,
MailNickname=“XXXXX”,
SecurityEnabled=true,
AdditionalData=additionalDataGroupA
};
等待graphClient.Groups.Request().AddAsync(groupA);

我希望它能帮助您@Kaishu@Anshu这意味着我们可以创建A的嵌套组B和C成员。但仍然不清楚如何在创建B和C时引用/链接它们
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
        .Create(clientId)
        .WithTenantId(tenantID)
        .WithClientSecret(clientSecret)
        .Build();

ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);

// Create group B and add members(user-id1 and user-id2)
var additionalDataGroupB = new Dictionary<string, object>()
{
    {"members@odata.bind", new List<string>()}
};
(additionalData["members@odata.bind"] as List<string>).Add("https://graph.microsoft.com/v1.0/users/{id1}");
(additionalData["members@odata.bind"] as List<string>).Add("https://graph.microsoft.com/v1.0/users/{id2}");

var groupB = new Group
{
    Description = "Group B",
    DisplayName = "PamelaGroupB",
    GroupTypes = new List<String>()
    {
    },
    MailEnabled = false,
    MailNickname = "operations2019",
    SecurityEnabled = true,
    AdditionalData = additionalDataGroupB
};

Group groupBRequest = await graphClient.Groups.Request().AddAsync(groupB);
string groupB_id = groupBRequest.Id;

// Create group C
......
string groupC_id = groupCRequest.Id;


// Create group A and add members(groupB and groupC)
var additionalDataGroupA = new Dictionary<string, object>()
{
    {"members@odata.bind", new List<string>()}
};
(additionalData["members@odata.bind"] as List<string>).Add("https://graph.microsoft.com/v1.0/groups/" + groupB_id);
(additionalData["members@odata.bind"] as List<string>).Add("https://graph.microsoft.com/v1.0/groups/" + groupC_id);

var groupA = new Group
{
    Description = "Group A",
    DisplayName = "PamelaGroupA",
    GroupTypes = new List<String>()
    {
    },
    MailEnabled = false,
    MailNickname = "XXXXX",
    SecurityEnabled = true,
    AdditionalData = additionalDataGroupA
};

await graphClient.Groups.Request().AddAsync(groupA);