来宾用户 (Azure AD B2B) 能否从共享点页面调用图形(例如使用 spfx webpart)
Can a guest user (Azure AD B2B) call the graph from a sharepoint page (using say an spfx webpart)
现在 spfx 1.6 已经推出,我们支持调用 azure ad secure 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%27Sender%27)
azure函数很简单:
https://.azurewebsites.net/api/GetUserDetails?name=Sender
如果我以租户的普通用户身份登录,我可以成功调用图 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 - 但我想知道的是有任何文档可以告诉我 B2B 用户可以调用什么图 API?
例如,我可以向 B2B 用户提供他们在我的租户中所属的所有 Microsoft Teams 的列表吗?
郑重声明,我已经对两种类型的 B2B 用户进行了尝试。第一个是沼泽标准@outlook.com Microsoft 帐户,第二个是来自另一个 Office 365 租户的组织帐户。两个用户在图表 api 调用中具有相同的 return 值。
针对你的问题1:
没有官方文档告诉我们B2B用户可以调用什么图API,现在需要他们自己测试。
问题 2:团队 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
现在 spfx 1.6 已经推出,我们支持调用 azure ad secure 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%27Sender%27)
azure函数很简单:
https://.azurewebsites.net/api/GetUserDetails?name=Sender
如果我以租户的普通用户身份登录,我可以成功调用图 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 - 但我想知道的是有任何文档可以告诉我 B2B 用户可以调用什么图 API?
例如,我可以向 B2B 用户提供他们在我的租户中所属的所有 Microsoft Teams 的列表吗?
郑重声明,我已经对两种类型的 B2B 用户进行了尝试。第一个是沼泽标准@outlook.com Microsoft 帐户,第二个是来自另一个 Office 365 租户的组织帐户。两个用户在图表 api 调用中具有相同的 return 值。
针对你的问题1: 没有官方文档告诉我们B2B用户可以调用什么图API,现在需要他们自己测试。
问题 2:团队 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