Теперь, когда spfx 1.6 запущен, у нас появилась поддержка вызова API-интерфейсов Azure Ad Secure, таких как Microsoft Graph и Azure Functions.
Я использовал примеры из https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient, чтобы создать простую страницу, которая вызывает график.
Я немного расширил этот пример, чтобы вызвать функцию Azure, которая сама защищена через Azure AD.
Веб-часть spfx вызывает следующий граф api:
https://graph.microsoft.com/v1.0/users?$select=displayName,mail,userPrincipalName&$filter=(givenName%20eq%20%27Sender%27)%20or%20(surname%20eq%20%27Sender%27)%20or%20(displayName%20eq%20%27Sender%27)
Функция лазури очень проста:
https:? //.Azurewebsites.net/api/GetUserDetails имя = Отправитель
Если я вошел в систему как обычный пользователь арендатора, я могу успешно вызвать graph api и функцию azure.
если я пытаюсь перейти на страницу как пользователь Azure AD B2B, я могу успешно вызвать функцию Azure, но вызов графика встречается со следующим ответом:
{
"error": {
"code": "Authorization_RequestDenied",
"message": "Guest users are not allowed to perform this action.",
"innerError": {
"request-id": "4b862c51-70db-4ed0-ab5d-861197ae2512",
"date": "2018-09-11T09:27:26"
}
}
}
Теперь я понимаю, что у пользователя Azure AD B2B возникнут проблемы с вызовом определенных API-интерфейсов для графов, и, возможно, один из таких API-интерфейсов / users - но я хотел бы знать, есть ли какие-либо документы, которые могут сказать мне, какой API-интерфейс для графов B2B пользователь может позвонить?
Например, могу ли я предоставить пользователю B2B список всех команд Microsoft, членом которых он является, в моем арендаторе?
Для справки, я пробовал это с двумя типами пользователей B2B. Первая - стандартная учетная запись Microsoft @ outlook.com, вторая - организационная учетная запись другого клиента Office 365. Оба пользователя имеют одинаковое возвращаемое значение из вызова API api.