gpt4 book ai didi

sharepoint - MSTeams 桌面客户端中的 SPFx webpart 抛出 UnauthorizedAccessException

转载 作者:行者123 更新时间:2023-12-05 07:14:37 25 4
gpt4 key购买 nike

这个问题与之前在 StackOverflow 上提出的一个问题非常相似。但是,我得到的错误是不同的。

AadHttpClient fails when loading SP page with SPFx webpart in MSTeams Desktop Client

我还有一个 Sharepoint Online 网站,其中有一个使用 AadHttpClientSPFx web 部件

如果我从浏览器导航到 Sharepoint 站点或打开 MS Teams Web 客户端,则此 Web 部件有效。

我的设置一瞥:

enter image description here

这是我面临的问题的“重现步骤”概述。

  • 将 Web 部件部署到 SharePoint
  • 在 SharePoint 中查看 Web 部件 - Web 部件显示和加载正常
  • 在 Teams 中添加 SharePoint 选项卡并将其绑定(bind)到带有 Web 部件的页面
  • 查看 Teams Desktop 客户端中的选项卡 – 数据无法加载到 Web 部件中(参见下文)
  • 在 Teams Web 客户端中查看选项卡 – Web 部件显示并加载正常

当我调试 MS Teams 桌面客户端时,我在“网络请求”选项卡中进行了此调用:

https://{mytenant}.sharepoint.com/sites/{mysite}/_api/Microsoft.SharePoint.Internal.ClientSideComponent.Token.AcquireOBOToken?resource={我的 AAD 应用注册的 GUID}&clientId= {SharePoint Online 客户端扩展性 AAD 应用注册的 GUID}

随着响应:

错误 403:

{"odata.error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Access denied. You do not have permission to perform this action or access this resource."}}}

一个有趣的观察结果是此 Web 请求仅发生在 Microsoft Teams 桌面客户端中。

我很想知道为什么这只发生在 MS Teams 桌面客户端中,而不是在 MS Teams 网络客户端或 Sharepoint Online 上。

更新:10/02/2020

另一个观察:我们在不同的租户(个人租户而不是公司租户)上尝试了相同的设置。我们注意到,当在 Azure Active Directory 上启用 MFA 时,可能会重现相同的行为。

失败的请求是:

https://{personal tenant}.sharepoint.com/sites/{site name}/_api/Microsoft.SharePoint.Internal.ClientSideComponent.Token.AcquireOBOToken?resource={AD 应用注册的 GUID} &clientId={SPO 客户端可扩展性应用注册的 GUID}

但是,现在返回的错误是 500 响应:

{"odata.error":{"code":"-1, System.AggregateException","message":{"lang":"en-US","value":"One or more errors occurred."}}}

在 Github 上发现了类似的问题(但错误不同):https://github.com/SharePoint/sp-dev-docs/issues/4915

最佳答案

我最近遇到了一个调用 graphAPI 的 Web 部件的类似问题。在桌面团队中,调用从来不会发生,而且常常会卡住。我能够按照以下步骤修复它:-

第 1 步。访问租户管理站点上的新 API 权限管理页面。这会在幕后创建一个客户端 secret 。

第 2 步。转到 -> https://aad.portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

第 3 步。单击 SharePoint Online Client Extensibility Web Application Principal

第 4 步。单击左侧菜单上的“ list ”第 5 步。从 oAuth2Permission 数组中复制 id

"oauth2Permissions": [
{
"adminConsentDescription": "Allow the application to access SharePoint Online Client Extensibility Web Application Principal on behalf of the signed-in user.",
"adminConsentDisplayName": "Access SharePoint Online Client Extensibility Web Application Principal",
"id": "2143704b-186b-4210-b555-d03aa61823cf",
"isEnabled": true,
"lang": null,
"origin": "Application",
"type": "User",
"userConsentDescription": "Allow the application to access SharePoint Online Client Extensibility Web Application Principal on your behalf.",
"userConsentDisplayName": "Access SharePoint Online Client Extensibility Web Application Principal",
"value": "user_impersonation"
}
],

第 6 步。将“preAuthorizedApplications”条目替换为以下 json。保留下面写的 appId。

"preAuthorizedApplications": [
{
"appId": "00000003-0000-0ff1-ce00-000000000000",
"permissionIds": [
"YOUR COPIED ID FROM STEP 5"
]
}
],

第 7 步。点击保存。

让我知道这是否适合您。我引用了 https://github.com/SharePoint/sp-dev-docs/issues/3923#issuecomment-514726341 中的上述步骤

关于sharepoint - MSTeams 桌面客户端中的 SPFx webpart 抛出 UnauthorizedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59860729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com