如何使用 Microsoft.Graph 库查询服务主体组成员资格?
How do I query service principal group membership with the Microsoft.Graph library?
最近,AAD 添加了将服务主体放入安全组的功能(). Given a service principal object ID, how do I query its security group memberships with the Microsoft.Graph library?我尝试了以下操作:
var groups = client.Users[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
然后得到错误:
Microsoft.Graph.ServiceException: Code: Request_ResourceNotFound
Message: Resource '$servicePrincipalId' does not exist or one of its queried reference-property objects are not present.
我尝试改用 DirectoryObject:
var groups = client.DirectoryObjects[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
然后得到错误:
Microsoft.Graph.ServiceException: CodeMessage: Unsupported directory object class 'ServicePrincipal' specified by resource identifier.
如何获取有关服务主体的信息?是不是还不支持,我必须使用 REST API 之类的?我正在使用 1.17.0 Microsoft.Graph NuGet 包。
目前您必须使用 Microsoft.Graph.Beta library,它增加了对服务主体的支持:
var groups = client.ServicePrincipals[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
您也可以使用 CheckMemberGroups(new string[] { groupId })
方法。
最近,AAD 添加了将服务主体放入安全组的功能(
var groups = client.Users[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
然后得到错误:
Microsoft.Graph.ServiceException: Code: Request_ResourceNotFound Message: Resource '$servicePrincipalId' does not exist or one of its queried reference-property objects are not present.
我尝试改用 DirectoryObject:
var groups = client.DirectoryObjects[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
然后得到错误:
Microsoft.Graph.ServiceException: CodeMessage: Unsupported directory object class 'ServicePrincipal' specified by resource identifier.
如何获取有关服务主体的信息?是不是还不支持,我必须使用 REST API 之类的?我正在使用 1.17.0 Microsoft.Graph NuGet 包。
目前您必须使用 Microsoft.Graph.Beta library,它增加了对服务主体的支持:
var groups = client.ServicePrincipals[servicePrincipalId].GetMemberGroups(true).Request().PostAsync().Result;
您也可以使用 CheckMemberGroups(new string[] { groupId })
方法。