将PnP配置模板与Azure Functions / Powershell一起应用

时间:2019-07-23 14:12:43

标签: azure powershell azure-functions

我目前正在尝试开发一个流程,该流程将创建一个SharePoint网站,然后利用Azure功能为该网站提供选择的库等。

Flow本身很简单,但是我苦苦挣扎的是Azure Function本身,尤其是身份验证;它使用Connect-PnPOnline cmdlet,而我们的租户使用MFA时却遇到了一些困难-我创建了一个服务主体用户,这至少使我能够连接到该站点,但是我仍然不能真正使用Apply-PnPProvisioningTemplate,也不能真正使用任何其他PnP命令-当我尝试这样做时,我得到:

  

“远程服务器返回错误:(403)禁止。”

我的服务主体用户具有Contribute权限,并且具有Sites.FullControl.All的范围,所以我不确定我要去哪里。

请参阅下面的Powershell代码-我认为问题并非真正出自那里,但显示出来不会有任何伤害:

$requestBody = Get-Content $req -Raw | ConvertFrom-Json

"destination": "SharePointSiteURL"


$destination = $requestBody.destination
$secpasswd = ConvertTo-SecureString $env:pass -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($env:user, $secpasswd)
Connect-PnPOnline -url $destination -AppID $env:user -AppSecret $env:pass
Apply-PnPProvisioningTemplate -path "D:\home\site\wwwroot\template.xml"
Out-File -Encoding Ascii -FilePath $res -inputObject "Done $destination"

我应该注意,这实际上是我第一次使用Azure Functions,因此如果此处的解决方案非常简单,请原谅!任何帮助将不胜感激。