当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PnP PowerShell:使用 ClientID 和 ClientSecret 连接 PnPOnline

作者:精品下载站 日期:2024-12-14 21:17:53 浏览:16 分类:玩电脑

PnP PowerShell:使用 ClientID 和 ClientSecret 连接 PnPOnline


要求:使用 PnP PowerShell Connect-PnPOnline 以及 AppID 和 AppSecret 连接到 SharePoint Online。

如何使用 PnP PowerShell AppID 和 AppSecret 连接到 SharePoint Online?

PnP PowerShell 是一个 PowerShell 模块,提供一组用于使用 SharePoint 和 SharePoint Online 的 cmdlet。我在 Windows 任务计划程序中计划了一个 PnP PowerShell 脚本,每 5 分钟运行一次。我需要脚本在无人值守的情况下连接到 SharePoint Online。虽然我可以在脚本中存储用户名和密码,但我不想这样做,因为密码会根据安全策略定期更改。

App 的身份验证方法允许我们在不提示用户名和密码的情况下运行脚本以下是在 SharePoint Online 中创建新应用程序的步骤:

步骤 1:注册 SharePoint 客户端 ID

在应用程序注册表中注册一个新应用程序。假设您需要连接到 SharePoint Online 网站“https://tenant.sharepoint.com/sites/marketing”,导航到 URL:https://tenant.sharepoint.com/Sites/Marketing/_layouts/ 15/AppRegNew.aspx,并注册一个新的应用程序主体。以下是如何在 SharePoint Online 中生成客户端 ID 和客户端密码:

  1. 单击“客户端 ID”和“客户端密钥”字段的“生成”按钮。
  2. 向校长提供姓名。我输入了“任务计划程序脚本”
  3. 对于域和重定向 URL,请使用“localhost”和“https://localhost”作为重定向 URL。
  4. 复制客户端 ID 和客户端密钥字段,然后单击“创建”按钮来注册应用程序主体。您应该收到一条确认消息:“应用程序标识符已成功创建。”

    [玩转系统] PnP PowerShell:使用 ClientID 和 ClientSecret 连接 PnPOnline

您可以在 Azure AD 中注册具有永不过期的应用程序密钥的应用程序 ID!具体方法如下:如何使用 Azure AD 注册永不过期的应用程序 ID 密钥?

第 2 步:向应用程序主体分配权限

注册应用程序主体后,下一步是向 SharePoint Online 上的应用程序主体授予权限。我们可以将其范围限定为租户、网站集或 Web 级别。让我们授予此应用程序主体对网站集的“完全访问”权限。

  1. 导航至 https://tenant.sharepoint.com/sites/marketing/_layouts/15/appinv.aspx
  2. 在“App Id”字段中,输入您在上一步中复制的“Client Id”,然后单击“Lookup”按钮。这会加载与我们创建的输入应用程序 ID 相匹配的“标题”、“应用程序域”和“重定向 URL”值,并允许我们设置应用程序的权限。在“Permission Request XML:”中,输入以下内容并单击“Create”按钮:

  3. 同样,要授予租户级权限,请使用以下命令:

    [玩转系统] PnP PowerShell:使用 ClientID 和 ClientSecret 连接 PnPOnline

  4. 单击“信任它”按钮,授予应用程序以完全访问权限访问 SharePoint 网站集的权限。

    [玩转系统] PnP PowerShell:使用 ClientID 和 ClientSecret 连接 PnPOnline

在这里,我在此网站集中配置了“完全控制”。您还可以使用:只读、写入、对列表、网站、网站集甚至租户的完全控制。请参阅 https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/add-in-permissions-in-sharepoint

使用 Connect-PnPOnline ClientId 连接到 SharePoint Online 和 ClientSecret

现在,您可以使用 AppId 和 AppSecret 连接到 SharePoint Online(技术上从任何应用程序!)


#Site collection URL
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/"

#Connect to SharePoint Online with ClientId and ClientSecret
Connect-PnPOnline -Url $SiteURL -ClientId "3c85uc19-f1b9-41ba-8c16-c3281x09b82" -ClientSecret "1KLekxb775bhs/C3*aqqWE6Gs13u4="

Get-PnPContext

如果您收到“Connect-PnPOnline:令牌请求失败”。错误,请检查您的AppId和AppSecret是否正确。或者可能已经过期了,默认情况下,它的过期日期是一年!您可以从 Azure AD 管理门户的应用程序注册部分注册 AppID,并将持续时间设置为“永不过期”。然后授予从 SharePoint 访问该 AppId 的权限。

如果您收到“调用目标已引发异常”。这仅仅意味着您的客户端 ID 或客户端密码错误或未授予权限。

结论

总之,使用客户端 ID 和客户端密钥连接到 SharePoint 网站是对 PowerShell 脚本进行身份验证的安全且有效的方法。通过注册客户端 ID、创建客户端密钥并授予权限,您可以使用 Connect-PnPOnline cmdlet 连接到 SharePoint 网站并使用 PnP PowerShell 执行各种操作。确保客户端机密安全并确保在生产环境中使用连接之前测试连接非常重要。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯