0

Требование: Мы хотели бы запросить группы пользователя через Graph API от Microsoft со следующей просьбой:Microsoft Graph API получить группы пользователей дают привилегию ошибку

https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_getmembergroups

В нашем случае ответ выглядит следующим образом:

{ 
    "error": { 
    "code": "Authorization_RequestDenied", 
    "message": "Insufficient privileges to complete the operation.", 
    "innerError": { 
     "request-id": "a230a67e-8ef1-4f88-aa19-2c5b983c3de4", 
     "date": "2017-01-04T16:29:55" 
    } 
    } 
}

(Примечание: GET https://graph.microsoft.com/v1.0/me/ работает нормально, и возвращает пользовательские данные)

{ 
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", 
    "id": "e23976a1-8bd9-4cca-a410-e095d2c2022d", 
    "businessPhones": [], 
    "displayName": "XXXX Vad", 
    "givenName": "XXXX", 
    "jobTitle": null, 
    "mail": null, 
    "mobilePhone": null, 
    "officeLocation": null, 
    "preferredLanguage": null, 
    "surname": "Vad", 
    "userPrincipalName": "XXXX.vad_outlook.com#EXT#@XXXXvadoutlook.onmicrosoft.com" 
} 

Окружающая среда:

  • Application создан на apps.dev.microsoft.com со следующими параметрами: о Id Application: 412386c3-8fa3-4000-9039-748111407XXX о делегированных разрешениях: [ User.Read]
  • Это приложение отображается в «Azure Portal/AAD/Корпоративные приложения» и пользователь с группой «BASIC» добавляется к этому приложению

Пример маркера доступа, полученного от AAD:

{ 
    "aud": "https://graph.microsoft.com", 
    "iss": "https://sts.windows.net/b9df6a2d-9150-45f9-abf0-9c30f9e527c7/", 
    "iat": 1483548390, 
    "nbf": 1483548390, 
    "exp": 1483552290, 
    "acr": "1", 
    "aio": "AQABAAEAAADRNYRQ3dhRSrm-4K-adpCJhEVX2WEl4aboghl6AXaqOVcbaQPl1yYg1X1D2r4cNxBYmPvUiTKE9bB6wwpNSBKeD2OZXhrzdE3FPddCzbaTo84X8aSoKFaAt2vysYSv1HdChNXBPbfrVlA6YBuSwVwEIAA", 
    "altsecid": "1:live.com:00037FFEC5917401", 
    "amr": [ 
    "pwd" 
    ], 
    "app_displayname": "XXX test", 
    "appid": "412386c3-8fa3-4000-9039-748111407XXX", 
    "appidacr": "0", 
    "email": "[email protected]", 
    "family_name": "Vad", 
    "given_name": "XXXX", 
    "idp": "live.com", 
    "ipaddr": "165.225.80.95", 
    "name": "XXXX Vad", 
    "oid": "e23976a1-8bd9-4cca-a410-e095d2c20XXX", 
    "platf": "3", 
    "puid": "10037FFE9D51DXXX", 
    "scp": "User.Read", 
    "sub": "sCDfsIUynhm4GdgPIe8hYguyNbbc7IBjZeKLd1UDXXX", 
    "tid": "b9df6a2d-9150-45f9-abf0-9c30f9e52XXX", 
    "unique_name": "live.com#[email protected]", 
    "ver": "1.0" 
} 

Что я делаю не так или чего не хватает? Любая помощь приветствуется.

+0

Так у вас есть разрешение на чтение пользователей, но я предполагаю, что это не означает, что вы можете прочитать группы? – juunas

+0

Да, я добавил User.READ на apps.dev.microsoft в мое приложение, и я использую тот же appId для извлечения токена (см. Выше). Хотя претензия «aud» не является моим приложением ... –

+0

В заявлении аудита указано, для кого предназначен токен, поэтому ничего плохого в этом нет. Вероятно, вам нужно другое разрешение. – juunas

ответ

Смежные вопросы