Поэтому я немного покопался и обнаружил, что Microsoft предпочитает нас, разработчиков, использующих Microsoft Graph, а не Azure AD Graph.
График Microsoft против Azure AD Graph
Я нашел аналогичный вызов в Microsoft Graph API для получения информации о члене Список пользователей участника вызова
Для этого вызова требуется следующая scope :
Directory.Read.All
Directory.ReadWrite.All
И вот шаги, которым я следовал:
- Приложению потребуется получить токен для выполнения вызова API Microsoft Graph.
POST https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
HEADER
Тип содержимого: application / x-www-form-urlencoded
Корпус:
client_id = & сфера = HTTPS% 3A% 2F% 2Fgraph.microsoft.com% 2F.default & client_secret = & grant_type = client_credentials * +1023 *
ОТВЕТ:
{
"token_type": "Bearer",
"expires_in": 3600,
"ext_expires_in": 0,
"access_token": "<token-value>"
}
Секрет клиента генерируется при регистрации приложения.
- Приложение будет вызывать API-интерфейс Microsoft Graph для получения
POST https://graph.microsoft.com/v1.0/users/{user-object-id}/checkMemberGroups
HEADERS: авторизация: Bearer {token-value}
Тип контента: приложение / JSON
ТЕЛО:
{
"groupIds":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]
}
РЕПЛИКА:
200 ОК - если пользователь принадлежит к группе
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.String)",
"value": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
]
}
404 Не найдено - если пользователь не существует
{
"error": {
"code": "Request_ResourceNotFound",
"message": "Resource 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' does not exist or one of its queried reference-property objects are not present.",
"innerError": {
"request-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"date": "2018-05-23T02:54:47"
}
}
}
Это поможет приложению определить, принадлежит ли пользователь Azure к назначенной группе или нет.