我的任务是提取 SharePoint 列表架构以进行存储,我正在使用 PnP PowerShell 模块来执行此操作,我们还希望自动执行此操作,因此不能使用交互式登录,它必须是非交互式的。
我已按照 PnP 的说明创建应用程序注册表,但省略了添加平台和重定向 URI 的说明。
我尝试在本地进行测试,以确保脚本正常工作并使用我的用户电子邮件和密码进行身份验证,因为我对网站拥有完全控制权限,并且可以通过浏览器访问该网站,但是在运行脚本时出现以下错误
Error occurred: AADSTS53003: Access has been blocked by Conditional Access policies. The access policy does not allow token issuance. The returned error contains a claims challenge. For additional info on how to handle claims related to multifactor authentication, Conditional Access, and incremental consent, see https://aka.ms/msal-conditional-access-claims. If you are using the On-Behalf-Of flow, see https://aka.ms/msal-conditional-access-claims-obo for details.
这是我的代码:
$encryptedPassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential -ArgumentList ($username, $encryptedPassword)
Connect-PnPOnline -Url $targetSite -ClientId $ClientId -Credentials $creds -Verbose
我们希望避免使用自签名证书的其他身份验证选项,因为它需要跳过许多内部环才能获得签名,并且使用秘密/访问令牌被 PnP 视为遗留方法。
我看不到是什么阻止我以编程方式访问该网站?
您遇到的错误消息表明您对 SharePoint 资源的访问受到组织内设置的条件访问策略的限制。这些策略可能需要满足特定条件,例如设备合规性或多因素身份验证 (MFA),这可能会在使用非交互式身份验证方法时阻止令牌颁发。
AADSTS53003:访问已被条件访问策略阻止。
通过解决条件访问策略并可能使用仅应用程序身份验证,您应该能够解决所面临的访问问题。