【问题标题】:How do I query service principal group membership with the Microsoft.Graph library?如何使用 Microsoft.Graph 库查询服务主体组成员身份?
【发布时间】:2019-10-02 18:50:20
【问题描述】:

最近,AAD 添加了将服务主体放入安全组 (ref) 的功能。给定服务主体对象 ID,如何使用 Microsoft.Graph library 查询其安全组成员身份?我尝试了以下方法:

var groups = client.Users[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;

但随后得到错误:

Microsoft.Graph.ServiceException:代码:Request_ResourceNotFound 消息:资源“$servicePrincipalId”不存在或其查询的引用属性对象之一不存在。

我尝试改用 DirectoryObject:

var groups = client.DirectoryObjects[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;

但随后得到错误:

Microsoft.Graph.ServiceException:CodeMessage:资源标识符指定的不受支持的目录对象类“ServicePrincipal”。

如何获取有关服务主体的信息?它还不支持,我必须使用 REST API 或其他东西吗?我正在使用 1.17.0 Microsoft.Graph NuGet 包。

【问题讨论】:

    标签: azure-active-directory microsoft-graph-api microsoft-graph-sdks


    【解决方案1】:

    目前你必须使用Microsoft.Graph.Beta library,它增加了对服务主体的支持:

    var groups = client.ServicePrincipals[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
    

    您也可以使用CheckMemberGroups(new string[] { groupId }) 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多