来宾用户(Azure AD B2B)可以从共享点页面(使用spfx Webpart)调用图形吗?

时间:2018-09-11 10:09:29

标签: microsoft-graph spfx azure-ad-b2b

现在,spfx 1.6已启动,我们已经支持调用诸如Microsoft Graph和Azure Functions之类的Azure广告安全API。

我使用了https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient中的示例来创建一个简单的页面来调用图形。

我已经稍微扩展了此示例,以调用本身通过Azure AD保护的Azure函数。

spfx Webpart调用以下图形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)

azure函数非常简单:

https://.azurewebsites.net/api/GetUserDetails?name =发件人

如果我以租户的普通用户身份登录,则可以成功调用图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时会遇到问题,也许/ users是一个这样的API-但我想知道是否有任何文档可以告诉我哪种图形API B2B用户可以打电话吗?

例如,我可以向B2B用户提供他们在租户中所隶属的所有Microsoft团队的列表吗?

为记录起见,我已经尝试使用两种类型的B2B用户进行此操作。第一个是沼泽标准@ outlook.com Microsoft帐户,第二个是来自另一个Office 365租户的组织帐户。图api调用中的两个用户都具有相同的返回值。

1 个答案:

答案 0 :(得分:0)

对于您的问题1: 没有官方文档告诉我们B2B用户可以调用哪种图形API,他们现在需要自己进行测试。

问题2:Teams API应该可以由其成员的B2B用户访问。

参考:

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/connect-to-api-secured-with-aad

https://github.com/microsoftgraph/msgraph-training-spfx