迁移管理器允许客户使用具有证书身份验证的Azure 应用注册作为标识模型,将网络文件共享迁移到 SharePoint 和 OneDrive。
准备步骤
1. 注册应用程序
按照说明在Microsoft Entra 管理中心中注册应用程序。 让我们将此应用程序命名为 MigApp。
2.授予权限
在Microsoft Entra 管理中心,转到“应用程序>应用注册”,然后从“所有应用程序”选项卡中选择“MigApp”。
接下来,在“API 权限”页上授予必要的 API 权限 。
若要限制“MigApp”将内容移动到特定的 SharePoint 网站,请在 SharePoint 下授予“网站.Selected”权限,并Microsoft图形 API。
- SharePoint API:
- “Sites.Selected”:REST 和 CSOM (客户端对象模型) 调用所必需的。
- Microsoft图形 API:
- “Sites.Selected”:与网站相关的作是必需的。
若要允许“MigApp”将内容移动到所有 SharePoint 网站,请在 SharePoint 下授予“Sites.FullControl.All”权限,Microsoft图形 API。
- SharePoint API:
- “Sites.FullControl.All”:需要才能完全控制所有网站集。
- Microsoft图形 API:
- “Sites.FullControl.All”:需要才能完全控制所有网站集。
授予更多权限
- Microsoft图形 API:
- “User.Read.All”:解析用户映射所必需的。
- “Group.Read.All”:解析用户映射所必需的。
- “Organization.Read.All”:需要将遥测数据发送到正确的地理位置。
3.上传证书
转到 “证书 & 机密 ”页,然后选择“ 证书 ”选项卡。
- 上传企业公钥基础结构 (PKI) 颁发的 X.509 证书的公钥。
- 复制“指纹”中的值以供将来使用。
授予目标站点访问权限
如果为“MigApp”设置 SharePoint Sites.Selected 权限,则需要在迁移开始之前向应用程序授予所有迁移目标网站的FullControl 权限。
向 SharePoint 管理员网站授予读取权限
在迁移开始之前,还需要向应用程序授予 SharePoint 管理员 网站的读取权限。
安装代理
在代理工作站上,在 Windows 证书管理存储“当前用户”路径上安装由企业公钥基础结构 (PKI) 颁发的 X.509 证书。 可以通过键入命令 certmgr.msc来启动证书管理应用程序。
准备包含以下内容的配置 Json 文件:
{
"Thumbprint":"The client credential certificate thumbprint",
"TenantId":"Tenant ID",
"ClientId":"App registration Id",
"AdminUrl": "The SharePoint Admin site URL, example https://contoso-admin.sharepoint.com",
}
按照 说明安装代理。 在代理设置“欢迎”页中,选择“证书身份验证”选项,并加载在上一步中准备的证书身份验证配置文件。 然后完成其余安装步骤。
- 如果文件包含不正确的属性值,则代理将显示一条错误消息来解释原因并禁用“下一步”按钮。
- 如果“MigApp”没有足够的权限,代理将显示一条错误消息,提醒你向应用授予必要的权限。
成功启动代理后,可以在迁移管理器上开始迁移内容。
授予网站权限的步骤
使用图形 API授予对网站的权限
按照步骤使用Microsoft图形 API向给定网站授予权限。
- 通过调用 获取站点 API 获取站点 ID。
- 若要检索管理站点的站点 ID,请调用 GET /sites/contoso-admin.sharepoint.com
- 若要检索根网站的站点 ID,请调用 GET /sites/contoso.sharepoint.com。
- 若要检索其他网站的站点 ID,请调用 GET /sites/contoso.sharepoint.com:/sites/{site relative url} 或 GET /sites/contoso.sharepoint.com:/teams/{site relative url}。
响应正文中的 ID 属性 包含用逗号分隔的三个部分:确保复制整个字符串。
- 通过调用 创建权限 API 向站点分配权限。 使用从步骤 1 复制的字符串,使用请求正文调用 POST /sites/{siteId}/permissions。
- 若要向管理站点分配权限,请将角色设置为 read。
- 对于任何其他站点,请将角色设置为 所有者。
{
"roles": ["read/write/owner"],
"grantedToIdentities": [{
"application": {
"id": "IdOfYourEntraApp",
"displayName": "NameOfYourEntraApp"
}
}]
}
使用 PowerShell PnP 授予对网站的权限
按照步骤使用 PowerShell PnP 向站点授予权限。
- 使用 命令安装 Powershell7 并导入所需的模块:
Install-Module PnP.PowerShell -Force and Import-Module PnP.PowerShell
- 运行 命令以创建一个应用,该应用充当 PnP-PowerShell 的代理来授予权限。 从执行结果复制客户端 ID。
Register-PnPEntraIDAppForInteractiveLogin -ApplicationName "PnP PowerShell" -Tenant yourtenant.onmicrosoft.com -Interactive
- 使用在上一步中检索到的客户端 ID 设置变量 PnPClientId。
$PnPClientId = <The client ID from the step above>
- 运行 命令以连接 SharePoint 管理员网站。 管理员 URL 的格式
https://contoso-admin.sharepoint.com为 。
Connect-PnPOnline –interactive –Url <AdminSiteUrl> -ClientId <PnPClientId>
- 向应用程序授予 SharePoint 管理员网站访问权限。 “ClientId”是 entra 应用客户端 ID。
Grant-PnPAzureADAppSitePermission -AppId <ClientId> -DisplayName <App name or a random name> -Permissions ``<Permission> -Site <DestinationSiteUrl>
- 若要向应用程序授予 SharePoint 管理员网站读取权限,命令为:
Grant-PnPAzureADAppSitePermission -AppId <ClientId> -DisplayName <App name or a random name> -Permissions
Read
-Site <
AdminSiteUrl
>
- 若要授予应用对目标站点的 FullControl 权限,命令为:
Grant-PnPAzureADAppSitePermission -AppId <ClientId> -DisplayName < App name or a random name > -Permissions
FullControl
-Site <
DestinationSiteUrl
>