gpt4 book ai didi

microsoft-graph-api - 如何在 Microsoft Graph API 中筛选 appRoleAssignments

转载 作者:行者123 更新时间:2023-12-05 06:22:21 25 4
gpt4 key购买 nike

我在 Azure AD 租户中有一个企业应用程序,我想检查是否为该应用程序分配了特定组。

要列出应用程序的所有 appRoleAssignments,我可以这样做:

GET/beta/servicePrincipals/{id}/appRoleAssignments

其中 {id} 是企业应用程序的 ID。这将返回 appRoleAssignment 的列表对象。我想在特定组中过滤此列表,因为该列表可能非常大。我尝试使用 $filter 查询参数,但似乎无法正常工作。我尝试了以下方法:

$filter=principalId eq '{groupId}'

这是行不通的。我收到此错误消息:

{
"error": {
"code": "BadRequest",
"message": "Invalid filter clause",
"innerError": {
"request-id": "<id>",
"date": "<date>"
}
}
}

有什么方法可以过滤列表吗?

我可以通过执行以下请求获取组分配到的所有 appRoleAssignments,以相反的方式执行此操作:

GET/beta/groups/{groupId}/appRoleAssignments

但我在这里似乎遇到了同样的问题,无法使用 $filter 来过滤我要检查的特定企业应用程序。

如果过滤不起作用,是否有任何其他端点可以使用,这样我就不必在客户端中进行分页了?

最佳答案

是的,这是可能的。

这里的混淆是由于在 Microsoft Graph beta 中,principalIdresourceId AppRoleAssignment 的属性实体声明为 Edm.Guid ,而不是更熟悉的Edm.String .

使用 Microsoft Graph 测试版

要检索给定组的所有应用角色分配,给定资源应用,使用 Microsoft Graph API(使用换行符以确保易读性):

GET https://graph.microsoft.com/beta/groups/{group-id}/appRoleAssignments
?$filter=resourceId eq {resource-id}

地点:

  • {group-id}是组的对象ID
  • {resource-id}是资源应用的服务主体对象ID

Important: Note the absence of single quotes (') surrounding {resource-id}. This is required when the attribute being filtered on is of type Edm.Guid.

使用示例值,此查询如下所示:

GET https://graph.microsoft.com/beta/groups/75c647eb-8ff0-478d-b131-6c1bd4071841/appRoleAssignments
?$filter=resourceId eq ddd57b26-e13e-4db4-93d3-996f382251df

我还想借此机会澄清我在问题中注意到的一个可能的混淆。使用 Microsoft Graph 测试版:

  • appRoleAssignments用户、组和服务主体的导航将返回已授予用户、组或服务主体的应用程序角色分配(即用户/组/服务主体是返回的 principalIdAppRoleAssignment )。<
  • appRoleAssignedTo在服务主体上导航将返回应用角色分配,其中相关服务主体是公开应用角色的资源应用(即,服务主体是返回的 resourceIdAppRoleAssignment)。

使用 Azure AD Graph 1.6

Note: In general, the recommendation is to use Microsoft Graph. Only use Azure AD Graph if the capability is not available on Microsoft Graph v1.0 and you require a production-ready API. You should plan to move to Microsoft Graph as soon as the capability is made available in v1.0.

要使用 Azure AD Graph API(使用换行符以确保易读性)检索给定组的所有应用角色分配给给定资源应用:

GET https://graph.windows.net/{tenant-id}/groups/{group-id}/appRoleAssignments
?$filter=resourceId eq guid'{resource-sp-id}'
&api-version=1.6

地点:

  • {tenant-id}是租户ID还是经过验证的域名
  • {group-id}是组的对象ID
  • {resource-sp-id}是资源应用的服务主体对象ID

关于microsoft-graph-api - 如何在 Microsoft Graph API 中筛选 appRoleAssignments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59287061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com