首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPFx MSTeams桌面客户端中的SPFx部件引发UnauthorizedAccessException

SPFx MSTeams桌面客户端中的SPFx部件引发UnauthorizedAccessException
EN

Stack Overflow用户
提问于 2020-01-22 13:21:54
回答 2查看 1.3K关注 0票数 3

这个问题非常类似于先前在StackOverflow上提出的一个问题。然而,我得到的错误是不同的。

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

我还有一个共享点在线站点,其中有一个SPFx web部件,它使用了

如果我从浏览器导航到Sharepoint站点,或者打开MS Teams客户端,这个web部件就能工作。

一瞥我的设置:

以下是我所面临的问题的“复制步骤”概述。

将web部件部署到SharePoint

  • View中web部件在SharePoint - Web部件中显示和加载OK

  • ,在团队中添加SharePoint选项卡,并将其绑定到web部件

  • 页面,查看Teams客户端中的选项卡-数据无法在web部件中加载(参见下文)

  • 查看Teams web部件中的选项卡,并加载OK

F 219

当我调试MS Team桌面客户端时,我在“网络请求”选项卡中调用了以下内容:

https://{mytenant}.sharepoint.com/sites/{mysite}/_api/Microsoft.SharePoint.Internal.ClientSideComponent.Token.AcquireOBOToken?resource={GUID of my AAD app registration}&clientId={GUID of SharePoint Online Client Extensibility AAD app registration}

答复如下:

错误403:

{“odata.error”:{“代码”:“-2147024891,System.UnauthorizedAccessException",”消息“:{”lang“:”en-US“,”odata.error“:”访问被拒绝。您没有执行此操作或访问此资源的权限“}}

一个有趣的观察是,这个web请求只发生在微软团队桌面客户端。

我想知道为什么这只发生在MS团队桌面客户端,而不是在MS团队web客户端或Sharepoint Online上。

更新: 10/02/2020

另一个注意事项:我们在不同的租户(个人租户而不是公司租户)上尝试了相同的设置。我们注意到,当MFA打开Azure Active Directory时,也可以复制相同的行为。

失败的请求是:

https://{personal tenant}.sharepoint.com/sites/{site name}/_api/Microsoft.SharePoint.Internal.ClientSideComponent.Token.AcquireOBOToken?resource={GUID of the AD app registration}&clientId={GUID of the SPO Client Extensibility app registration}

但是,现在返回的错误是一个具有响应的500:

{“odata.error”:{“代码”:“-1,System.AggregateException",”消息“:{”lang“:”en-US“,”value“:”发生了一个或多个错误“}}

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

EN

回答 2

Stack Overflow用户

发布于 2020-03-25 17:05:14

最近,我遇到了类似的问题,因为一个叫graphAPI的网站部件。在桌面团队中,这个电话从来不会发生,而且还会被卡住。我能够通过以下步骤来解决这个问题:

步骤1.访问租户管理站点上的新API权限管理页。这在幕后创建了一个客户端秘密。

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

步骤3.单击SharePoint Online Client Extensibility Web Application Principal

步骤4.单击左侧菜单步骤5中的Manifest。从oAuth2Permission数组复制id

代码语言:javascript
复制
"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.用以下json替换“preAuthorizedApplications”条目。保留appId如下所写的内容。

代码语言:javascript
复制
"preAuthorizedApplications": [
    {
        "appId": "00000003-0000-0ff1-ce00-000000000000",
        "permissionIds": [
            "YOUR COPIED ID FROM STEP 5"
        ]
    }
],

第七步点击保存。

如果这对你有用的话请告诉我。我从https://github.com/SharePoint/sp-dev-docs/issues/3923#issuecomment-514726341引用了上述步骤

票数 0
EN

Stack Overflow用户

发布于 2022-03-30 11:08:45

最后,我有一个解决办法:

删除应用程序

  1. ,删除SharePoint在线客户端扩展性Web应用程序原则和SharePoint在线客户端可扩展性Web应用程序首席助手
  2. 等几分钟,让AAD再次创建它们。
  3. 在请求来自自定义应用程序的权限之后。
  4. 再转到API访问页面以再次Go,权限将自动同步到"SharePoint联机客户端扩展性Web应用程序再次同步“。此外,禁用有限访问用户权限锁定模式可能会有所帮助。现在我所有的应用程序都像预期的那样工作。

为什么?

  1. Limited-access用户权限锁定模式可能会阻止您请求API .
  2. 删除AAD中的应用程序以再次获取令牌和所有配置同步。
  3. 从API访问获得大权限的方式是正确的,而不是从AAD .

授予的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59860729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档