azure-active-directory - microsoft graph 过滤器分配的角色
问题描述
在 Azure Active Directory 中,我创建了一个应用程序,在清单文件中,我appRoles
使用以下值更新了 :
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"displayName": "Client manager",
"id": "bf77e391-0bbf-4e33-854b-a384a5ac0630",
"isEnabled": true,
"description": "Client manager can manage all client actions.",
"value": "ClientManager"
}]
我更新了我的用户,以便我分配的角色不再Default Access
是,而是Client manager
使用 Graph api,我正在尝试检索这个分配的角色。我尝试了这个 uri,但由于某种原因它不会返回我的角色。
https://graph.microsoft.com/beta/me/appRoleAssignments?$filter=resourceId eq 04dcaab1-7219-4689-8510-4672e957ac11$select=appRoleId
但回应是:
{
"error": {
"code": "BadRequest",
"message": "Invalid filter clause",
"innerError": {
"request-id": "ce3cb456-956b-41c5-84a2-cdcdfe1ac3c5",
"date": "2018-11-05T20:54:08"
}
}
}
我可以为我的所有应用程序创建一个请求我所有角色的解决方法,但这是我想避免的。这将最终得到以下 uri:
https://graph.microsoft.com/beta/me/appRoleAssignments?$select=resourceId,appRoleId
并产生这个json,我需要在其中过滤掉我的applicationid。
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#appRoleAssignments(resourceId,appRoleId)",
"value": [
{
"appRoleId": "00000000-0000-0000-0000-000000000000",
"resourceId": "667cc3aa-00b9-4526-bde5-b81312ed5afb"
},
{
"appRoleId": "00000000-0000-0000-0000-000000000000",
"resourceId": "64b92ac1-4a56-478c-8774-5c584fb200e5"
},
{
"appRoleId": "bf77e391-0bbf-4e33-854b-a384a5ac0630",
"resourceId": "04dcaab1-7219-4689-8510-4672e957ac11"
}
]
}
我已经尝试了 StackOverflow 上提出的几种解决方案,但由于某种原因,所有eq
过滤器都不起作用。我正在使用Graph explorer测试我的查询。我想要的结果应该是这样的:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#appRoleAssignments(appRoleId)",
"value": [
{
"appRoleId": "bf77e391-0bbf-4e33-854b-a384a5ac0630"
}
]
}
解决方案
似乎不支持过滤resourceId
。https://graph.microsoft.com/beta/me/appRoleAssignments
如文档中所述:
并非所有 Microsoft Graph API 都支持所有参数,并且端点
v1.0
和beta
端点之间的支持可能存在显着差异。
此外,如果我们过滤id
with GET https://graph.microsoft.com/beta/me/appRoleAssignments?$filter=id eq 'xxxxxxx'
,它会正常工作。所以我认为查询的格式应该是正确的,唯一的可能是文档中提到的不支持它。
推荐阅读
- java - 在移动到下一条语句之前等待数据库更新的结果
- python - 是否可以在 wxpython GUI 中看到 DataFrame?
- jq - 为什么jq中的“减少”不减少
- python-3.x - 为什么我的球员在我的屏幕上走出球场时会出现“连胜”?
- vapor - 如何将我自己的域与蒸汽云一起使用
- c++ - 如何从字符串中删除未知长度的子字符串 - C++
- python - 将 MailGun X-Variables 添加到 python 请求
- r - 创建新列并将上一组的值结转到下一组
- python - 将数组([[数字]])转换为“数字”
- reactjs - 如何从反应导航堆栈导航嵌套组件中注销