Назначенная роль фильтра графиков Microsoft - PullRequest
0 голосов
/ 05 ноября 2018

В 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"
    }
]

}

1 Ответ

0 голосов
/ 06 ноября 2018

Кажется, не поддерживается фильтрация resourceId с https://graph.microsoft.com/beta/me/appRoleAssignments.

Как упомянуто в документ :

Не все параметры поддерживаются всеми API-интерфейсами Microsoft Graph, и поддержка может значительно различаться в конечных точках v1.0 и beta.

Кроме того, если мы отфильтруем id с помощью GET https://graph.microsoft.com/beta/me/appRoleAssignments?$filter=id eq 'xxxxxxx', он будет работать нормально. Поэтому я думаю, что формат запроса должен быть правильным, единственная возможность - он не поддерживается, как указано в документе.

enter image description here

...