在 SharePoint 2013 中從傳統模式移轉至宣告式驗證
**適用版本:**SharePoint 2013, SharePoint Foundation 2013, SharePoint Server 2013
**上次修改主題的時間:**2017-09-26
**摘要:**將 SharePoint 2010 產品或 SharePoint 2013 傳統模式 Web 應用程式轉換為宣告式驗證,或在 SharePoint 2013 中建立新的宣告式 Web 應用程式。
宣告式驗證是重要元件,可啟用 SharePoint 2013 的進階功能。要將傳統模式 Web 應用程式從 SharePoint 2010 產品 移至 SharePoint 2013,您可在 SharePoint 2010 產品 內轉換至宣告型 Web 應用程式,然後移轉至 SharePoint 2013。本文程序說明各種支援案例。
SharePoint 2013 的 PowerShellConvert-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 應用程式轉換為宣告式驗證
確認您具備下列成員資格:
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 命令提示字元處,輸入下列命令,以將指定使用者帳戶設定為網站的管理員:
$WebAppName = "http://<yourWebAppUrl>" $wa = get-SPWebApplication $WebAppName $wa.UseClaimsAuthentication = $true $wa.Update()
其中:
- <yourWebAppUrl> 是 Web 應用程式的 URL。
在 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>。
在 PowerShell 命令提示字元處,輸入下列命令,以執行使用者移轉:
$wa.MigrateUsers($true)
使用者完成移轉後,請在 PowerShell 命令提示字元處輸入下列命令,以執行佈建:
$wa.ProvisionGlobally()
如需詳細資訊,請參閱<New-SPClaimsPrincipal>。
完成先前的程序之後,您可能會遇到一個以上的下列問題:存取已遷移的 Web 應用程式時,送出有效認證的使用者可能會收到沒有權限的通知。如果發生此狀況,portalsuperuseraccount 的屬性和 web 應用程式的 portalsuperreaderaccount 屬性可能已在遷移之前設定。在此情形下,請更新 portalsuperuseraccount 屬性和 portalsuperreaderaccount 屬性,以使用新的宣告式的帳戶名稱。在移轉後,您可以在已移轉的 web 應用程式的 web 應用程式原則中,找到新的宣告式帳戶名稱。如果現有的警訊在移轉之後無法叫用,您可能必須刪除並重新建立警訊。如果搜尋編目在 web 應用程式移轉之後無法運作,請確定搜尋的編目帳號列出新的已轉換的帳戶名稱。如果沒有列出新的已轉換帳戶名稱,您必須手動建立編目帳號的新原則。
將 SharePoint 2010 產品 宣告型 web 應用程式移轉到 SharePoint 2013
在 SharePoint 2013 中,建立宣告型 Web 應用程式。如需詳細資訊,請參閱在 SharePoint 2013 中建立宣告式 Web 應用程式。
將兩個現有的 SharePoint 2010 產品 內容資料庫附加到新建立的 SharePoint 2013 宣告型 Web 應用程式。如需詳細資訊,請參閱在 SharePoint Server 中附加或卸離內容資料庫。
注意
若將 SharePoint 2010 產品 內容資料庫附加到 SharePoint 2013 宣告型 Web 應用程式,資料庫會升級為 SharePoint 2013 資料庫格式。附加後,您必須確認內容資料庫能正常運作。
將 SharePoint 2010 產品 傳統模式 Web 應用程式轉換為 SharePoint 2013 宣告型 Web 應用程式
在 SharePoint 2013 中完成下列程序,將現有 SharePoint 2010 產品 傳統模式 Web 應用程式轉換為使用宣告式驗證的 SharePoint 2013 Web 應用程式。
將 SharePoint 2010 產品 傳統模式 web 應用程式轉換為 SharePoint 2013 宣告式驗證
確認您具備下列成員資格:
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。
在 SharePoint 2013 環境的 [開始] 功能表上,按一下 [所有程式集]。
按一下 [SharePoint 2016]。
按一下 [SharePoint 2016 管理命令介面]。
變更至您儲存檔案的目錄。
在 PowerShell 命令提示字元處,輸入下列命令:
New-SPWebApplication -name "ClassicAuthApp" -Port 100 -ApplicationPool "ClassicAuthAppPool" -ApplicationPoolAccount (Get-SPManagedAccount "<domainname>\<user>")
其中:
- <domainname>\<user> 是伺服器所屬的網域,以及使用者帳戶的名稱。
將兩個現有的 SharePoint 2010 產品 內容資料庫附加到新 SharePoint 2013 傳統模式 Web 應用程式。如需詳細資訊,請參閱在 SharePoint Server 中附加或卸離內容資料庫。
注意
若將 SharePoint 2010 產品 內容資料庫附加到 SharePoint 2013 傳統模式 Web 應用程式,資料庫會升級為 SharePoint 2013 資料庫格式。附加後,您必須確認內容資料庫能正常運作。
在 PowerShell 命令提示字元處,輸入下列項目:
Convert-SPWebApplication -Identity <yourWebAppUrl> -To Claims -RetainPermissions [ -Force]
其中:
- <yourWebAppUrl> 是 Web 應用程式的 URL。
注意
Convert-SPWebApplication 將 Web 應用程式轉換為宣告式驗證。轉換後,您必須確認使用者可存取 Web 應用程式。
若必要,請將第三個 SharePoint 2010 產品 內容資料庫附加到新 SharePoint 2013 傳統模式 Web 應用程式。附加後,請確認內容資料庫可正常運作。
在 PowerShell 命令提示字元處,輸入下列項目:
Convert-SPWebApplication -Identity yourWebAppUrl -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" -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
確認您具備下列成員資格:
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 "ClassicAuthApp" -Port 100 -ApplicationPool "ClassicAuthAppPool" -ApplicationPoolAccount (Get-SPManagedAccount "<domainname>\<user>")
其中:
- <domainname>\<user> 是伺服器所屬的網域,以及使用者帳戶的名稱。
將兩個現有的 SharePoint 2010 產品 內容資料庫附加到新 SharePoint 2013 傳統模式 Web 應用程式。附加後,請確認內容資料庫能正常運作。如需詳細資訊,請參閱在 SharePoint Server 中附加或卸離內容資料庫。
如需詳細資訊,請參閱<New-SPWebApplication>和<Get-SPManagedAccount>。
See also
在 SharePoint 2013 中建立宣告式 Web 應用程式
在 SharePoint 2013 中建立使用傳統模式驗證的 Web 應用程式