【问题标题】:Can a guest user (Azure AD B2B) call the graph from a sharepoint page (using say an spfx webpart)来宾用户 (Azure AD B2B) 能否从共享点页面调用图表(例如使用 spfx webpart)
【发布时间】:2019-02-15 19:37:42
【问题描述】:

现在 spfx 1.6 已经发布,我们支持调用 Azure 广告安全 API,例如 Microsoft Graph 和 Azure Functions。

我使用来自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%27发件人%27)

azure函数很简单:

https://.azurewebsites.net/api/GetUserDetails?name=Sender

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

例如,我能否向 B2B 用户提供他们在我的租户中所属的所有 Microsoft Teams 的列表?

作为记录,我已经尝试过两种类型的 B2B 用户。第一个是沼泽标准@outlook.com Microsoft 帐户,第二个是来自另一个 Office 365 租户的组织帐户。两个用户都从图形 api 调用中获得相同的返回值。

【问题讨论】:

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


    【解决方案1】:

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

    问题 2:他们所属的 B2B 用户应该能够访问 Teams API。

    参考:

    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

    【讨论】:

      猜你喜欢
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      相关资源
      最近更新 更多