在 SharePoint 2013 中從傳統模式移轉至宣告式驗證

適用于:yes-img-132013 no-img-16 2016no-img-192019 no-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

宣告式驗證是重要元件,可啟用 SharePoint 2013 的進階功能。 要將傳統模式 Web 應用程式從 SharePoint 2010 產品 移至 SharePoint 2013,您可在 SharePoint 2010 產品 內轉換至宣告型 Web 應用程式,然後移轉至 SharePoint 2013。 本文程序說明各種支援案例。

SharePoint 2013 的 PowerShell Convert-SPWebApplication Cmdlet 會將傳統模式 Web 應用程式轉換為宣告型 Web 應用程式。

注意

將 Web 應用程式轉換為宣告式驗證後,則無法回復到傳統模式驗證。

將 SharePoint 2010 產品 傳統模式 Web 應用程式轉換為 SharePoint 2010 產品 的宣告式驗證,然後升級到 SharePoint 2013

在 SharePoint 2010 產品 中完成下列程序,將現有 Web 應用程式轉換為宣告式驗證。 將 Web 應用程式轉換為宣告式驗證後,請完成其他步驟,將 Web 應用程式移轉到 SharePoint 2013。 要完成此程序,您需要下列資訊:

  • 您要轉換的 Web 應用程式 URL: http://yourWebAppUrl

  • 要設定為網站管理員的使用者帳戶: yourDomain\yourUser

將 SharePoint 2010 產品 Web 應用程式轉換為宣告式驗證

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

  • 您必須閱讀 about_Execution_Policies (https://go.microsoft.com/fwlink/p/?LinkId=193050) 。

  • 請以高於上述基本要求新增必要的成員資格。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint 2013 Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱<權限>與<Add-SPShellAdmin>。

  1. 在 PowerShell 命令提示字元處,輸入下列命令,以將指定使用者帳戶設定為網站的管理員:
$WebAppName = "http://<yourWebAppUrl>"
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()

其中:

  • <yourWebAppUrl> 是 Web 應用程式的 URL。
  1. 在 PowerShell 命令提示字元處,輸入下列命令,以設定原則授與使用者完整存取權:
$account = "yourDomain\yourUser"
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"PSPolicy")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()

如需詳細資訊,請參閱<Get-SPWebApplication>。

  1. 在 PowerShell 命令提示字元處,輸入下列命令,以執行使用者移轉:
$wa.MigrateUsers($true)
  1. 使用者完成移轉後,請在 PowerShell 命令提示字元處輸入下列命令,以執行佈建:
$wa.ProvisionGlobally()

如需詳細資訊,請參閱<New-SPClaimsPrincipal>。

完成先前的程式之後,您可能會遇到下列一或多個問題:存取已移轉的 Web 應用程式時提交有效認證的使用者可能會收到沒有許可權的通知。 如果發生這種情況,可能已在移轉之前設定 Web 應用程式的 portalsuperuseraccount 屬性和 portalsuperreaderaccount 屬性。 如果是這種情況,請更新 portalsuperuseraccount 屬性和 portalsuperreaderaccount 屬性,以使用新的宣告型帳戶名稱。 移轉之後,您可以在已移轉 Web 應用程式的 Web 應用程式原則中找到新的宣告型帳戶名稱。如果在移轉之後未叫用現有的警示,您可能必須刪除並重新建立警示。如果搜尋編目在移轉之後無法在 Web 應用程式上運作,請確定搜尋編目帳戶會列出新的已轉換帳戶名稱。 如果未列出新的已轉換帳戶名稱,您必須手動建立編目帳戶的新原則。

將 SharePoint 2010 產品 宣告型 web 應用程式移轉到 SharePoint 2013

  1. 在 SharePoint 2013 中,建立宣告型 Web 應用程式。 如需詳細資訊,請參閱在 SharePoint Server 中建立宣告式 web 應用程式

  2. 將兩個現有的 SharePoint 2010 產品 內容資料庫附加到新建立的 SharePoint 2013 宣告型 Web 應用程式。 如需詳細資訊,請參閱在 SharePoint Server 中附加或卸離內容資料庫

    注意事項

    當您將 SharePoint 2010 Products 內容資料庫附加至 SharePoint 2013 宣告型 Web 應用程式時,資料庫將會升級為 SharePoint 2013 資料庫格式,但不會啟用宣告。

將 SharePoint 2010 產品 傳統模式 Web 應用程式轉換為 SharePoint 2013 宣告型 Web 應用程式

在 SharePoint 2013 中完成下列程序,將現有 SharePoint 2010 產品 傳統模式 Web 應用程式轉換為使用宣告式驗證的 SharePoint 2013 Web 應用程式。

將 SharePoint 2010 產品 傳統模式 web 應用程式轉換為 SharePoint 2013 宣告式驗證

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

  • 您必須閱讀 about_Execution_Policies (https://go.microsoft.com/fwlink/p/?LinkId=193050) 。

  • 請以高於上述基本要求新增必要的成員資格。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint 2013 Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱<權限>與 Add-SPShellAdmin

  1. 在 SharePoint 2013 環境的 [開始] 功能表上,按一下 [所有程式集]

  2. 按一下 [ SharePoint 2013]。

  3. 按一下 [ SharePoint 2013 管理命令介面]。

  4. 變更至您儲存檔案的目錄。

  5. 在 PowerShell 命令提示字元中,輸入下列命令:

$ap = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos
New-SPWebApplication -name "ClaimsWebApp" -Port 80 -ApplicationPool "ClaimsAuthAppPool" -ApplicationPoolAccount (Get-SPManagedAccount "<domainname>\<user>") -AuthenticationMethod NTLM -AuthenticationProvider $ap

其中:

  • <domainname>\ <user> 是伺服器所屬的網域,以及使用者帳戶的名稱。
  1. 將兩個現有的 SharePoint 2010 Products 內容資料庫附加至新的 SharePoint 2013 宣告模式 Web 應用程式。 如需詳細資訊,請參閱在 SharePoint Server 中附加或卸離內容資料庫

    注意事項

    當您將 SharePoint 2010 Products 內容資料庫附加至 SharePoint 2013 宣告模式 Web 應用程式時,資料庫會升級為 SharePoint 2013 資料庫格式。 附加後,您必須確認內容資料庫能正常運作。

  2. 在 PowerShell 命令提示字元處,輸入下列項目:

Convert-SPWebApplication -Identity <yourWebAppUrl> -From Legacy -To Claims -RetainPermissions [-Force]

其中:

  • <yourWebAppUrl> 是 Web 應用程式的 URL。

注意事項

Convert-SPWebApplication 會將內容資料庫轉換成宣告式驗證。 在您轉換內容資料庫之後,您必須確認使用者可以存取 Web 應用程式。

  1. 如有需要,請將第三個 SharePoint 2010 Products 內容資料庫附加至新的 SharePoint 2013 宣告模式 Web 應用程式,並確認內容資料庫在您附加內容資料庫之後正常運作。

  2. 在 PowerShell 命令提示字元處,輸入下列項目:

Convert-SPWebApplication -Identity <yourWebAppUrl> -From Legacy -To Claims -RetainPermissions [-Force]

確認在您將內容資料庫轉換成宣告式驗證之後,使用者可以存取 Web 應用程式。 如需詳細資訊,請參閱 New-SPWebApplication、Get-SPManagedAccount 和 Convert-SPWebApplication。

將 SharePoint 2013 傳統模式 Web 應用程式轉換為宣告型 Web 應用程式

在 SharePoint 2013 中完成下列程序,先建立傳統模式 Web 應用程式,然後轉換為宣告式驗證。

在 SharePoint 2013 建立傳統模式 Web 應用程式

  • 確認您具備下列成員身分:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    • 您必須閱讀 about_Execution_Policies (https://go.microsoft.com/fwlink/p/?LinkId=193050) 。

    • 請以高於上述基本要求新增必要的成員資格。

      系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint 2013 Cmdlet 的權限。

      注意事項

      [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱<權限>與<Add-SPShellAdmin>。

  • 在 PowerShell 命令提示字元處,輸入下列項目:

    New-SPWebApplication -Name <Name> -ApplicationPool <ApplicationPool> -AuthenticationMethod <WindowsAuthType> -ApplicationPoolAccount <ApplicationPoolAccount> -Port <Port> -URL <URL>
    

    其中:

    • <Name> 是使用傳統模式驗證的新 Web 應用程式名稱。

    • <ApplicationPool> 是應用程式集區的名稱。

    • <WindowsAuthType> 是 "NTLM" 或 "Kerberos"。 建議使用 Kerberos。

    • <ApplicationPoolAccount> 是這個應用程式集區所用執行身分的使用者帳戶。

    • <Port> 是在 IIS 內建立 Web 應用程式的地方。

    • <URL> 是 Web 應用程式的公用 URL。

    注意事項

    如需詳細資訊,請參閱<New-SPWebApplication>。

    注意事項

    [!附註] 成功建立 Web 應用程式後,開啟「管理中心」網頁時會看見狀況規則警告,說明傳統驗證模式已啟用一個以上的 Web 應用程式。 這就是為什麼我們建議使用宣告式驗證,不要使用傳統驗證模式。

將 SharePoint 2013 傳統模式 web 應用程式轉換為宣告式驗證

  • 在 PowerShell 命令提示字元處,輸入下列項目:

    Convert-SPWebApplication -Identity "http:// <servername>:port" -From Legacy -To Claims -RetainPermissions [-Force]
    

    其中:

    • <servername> 是伺服器名稱。

轉換為宣告式驗證後,請確認使用者可以存取 Web 應用程式。如需更多資訊,請參閱 New-SPWebApplication、Get-SPManagedAccount、和 Convert-SPWebApplication。

將 SharePoint 2010 產品 傳統模式 Web 應用程式移轉到 SharePoint 2013 傳統模式 Web 應用程式

在 SharePoint 2013 中完成下列程序,建立傳統模式 Web 應用程式,然後將現有的 SharePoint 2010 產品 傳統模式 Web 應用程式移轉到 SharePoint 2013。

將 SharePoint 2010 產品 傳統模式 web 應用程式轉移到 SharePoint 2013

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

  • 您必須閱讀 about_Execution_Policies (https://go.microsoft.com/fwlink/p/?LinkId=193050) 。

  • 請以高於上述基本要求新增必要的成員資格。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint 2013 Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱<權限>與<Add-SPShellAdmin>。

  1. 在 PowerShell 命令提示字元處,輸入下列項目:
New-SPWebApplication -name "ClassicAuthApp" -Port 100 -ApplicationPool "ClassicAuthAppPool" -ApplicationPoolAccount (Get-SPManagedAccount "<domainname>\<user>")

其中:

  • <domainname>\ <user> 是伺服器所屬的網域,以及使用者帳戶的名稱。
  1. 將兩個現有的 SharePoint 2010 產品 內容資料庫附加到新 SharePoint 2013 傳統模式 Web 應用程式。 附加後,請確認內容資料庫能正常運作。 如需詳細資訊,請參閱在 SharePoint Server 中附加或卸離內容資料庫

如需詳細資訊,請參閱<New-SPWebApplication>和<Get-SPManagedAccount>。

另請參閱

其他資源

在 SharePoint Server 中建立宣告式 web 應用程式

建立 SharePoint Server 中使用傳統模式驗證的 web 應用程式