簡體   English   中英

具有應用程序權限的 PnP Powershell Sharepoint:遠程服務器返回錯誤:(403)禁止

[英]PnP Powershell Sharepoint with app permissions: The remote server returned an error: (403) Forbidden

我想使用 PnP Powershell 通過在租戶中復制現有站點來配置現代 Sharepoint 在線站點。 我正在運行 SharePointPnPPowerShellOnline 模塊,版本 3.22.2006.2。

如果我使用-UseWebLogin選項進行連接,如下所示:

Connect-PnPOnline -Url https://<tenant>.sharepoint.com/sites/<sitename> -UseWebLogin

…然后運行

Get-PnPProvisioningTemplate -Out file.xml

…然后一切正常,然后我可以 go 從它創建的 XML 文件中配置一個新站點。

但是,我想做的是使用 Azure AD 中的注冊應用程序的應用程序權限。 我已經注冊了一個應用程序,並授予它我能想到的所有與 Sharepoint 相關的權限(以期在我開始工作后將權限降至最低)。 我這樣連接:

connect-PnPOnline -ClientID "<ClientID>" -ClientSecret "<ClientSecret>" -url https://<tenant>.sharepoint.com/sites/<sitename>

...而且它似乎可以毫無問題地建立聯系。 但是,當我嘗試運行以下命令時:

Get-PnPProvisioningTemplate -Out file.xml

…它失敗並出現錯誤:

Get-PnPProvisioningTemplate : The remote server returned an error: (403) Forbidden.
At line:1 char:1
+ Get-PnPProvisioningTemplate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (:) [Get-PnPProvisioningTemplate], WebException
    + FullyQualifiedErrorId : EXCEPTION,SharePointPnP.PowerShell.Commands.Provisioning.Site.GetProvisioningTemplate

我給我的 Azure AD 注冊應用程序的權限是:

  • Microsoft Graph:Directory.ReadWrite.All
  • Microsoft Graph:Group.Create
  • Microsoft Graph:Group.ReadWrite.All
  • Microsoft Graph:Sites.FullControl.All
  • Microsoft Graph:Sites.Manage.All
  • Microsoft Graph:Sites.Read.All
  • Microsoft Graph:Sites.ReadWrite.All
  • Sharepoint:Sites.FullControl.All
  • Sharepoint:站點.管理.全部
  • Sharepoint: Sites.Read.All
  • Sharepoint:TermStore.Read.All
  • Sharepoint:TermStore.ReadWrite.All
  • Sharepoint:User.Read.All
  • Sharepoint:User.ReadWrite.All

我還嘗試根據這篇文章創建 Sharepoint 應用程序主體: https://www.sharepointdiary.com/2019/03/connect-pnponline-with-appid-and-appsecret.ZFC356FDC70D2FCA679D 如果我在我的connect-PnpOnline行中使用此客戶端 ID 和客戶端密碼,我可以再次毫無問題地連接。 但是在嘗試運行Get-PnPProvisioningTemplate時,我又遇到了同樣的錯誤。

我還嘗試連接到同一租戶內的不同站點,但我都遇到了同樣的錯誤。

我開始對此沒有任何想法 - 任何人都可以解釋一下嗎?

得到它的工作。

當我創建我的 Sharepoint 應用程序主體時,我已通過此 XML 授予它權限:

<AppPermissionRequests AllowAppOnlyPolicy="true">
       <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl" />
</AppPermissionRequests>

但我需要的是:

<AppPermissionRequests AllowAppOnlyPolicy="true">
       <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>

...在其他作品中為整個租戶提供 FullControl,而不僅僅是 SiteCollection。

您也可以在 Azure AD 上注冊該應用程序。 如果在這種情況下,您需要配置證書並授予 SharePoint API 而不是 MS Graph 的權限。

在此處輸入圖像描述

下面是教程:

BR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM