升級或移轉 ADFS 2.0 的秘訣
英文原文已於 2011 年 8 月 9 日星期二發佈
我最近花了太多的時間嘗試升級 ADFS 伺服器,我打算從 Windows Server 2008 升級成 2008 R2。就像許多朝著理想境界努力的 SharePoint 使用者一樣,沒想到一件看似十分簡單的事,卻十足地折騰。在這裡我提供一些秘訣,希望能協助您渡過這個難關:
- 其實從 ADFS 2.0 並不會直接將 Windows Server 2008 升級成 Windows Server 2008 R2,而只是幫我解除安裝了整個 ADFS 而已,然後就得一切全部重來。因此,我會建議您先備份資料庫。至於其他的注意事項,容我稍後再做說明。
- ADFS 還非得要用 Windows Internal Database 不可。如果您只是要讓一切事情就緒,然後進行 SharePoint 伺服器陣列,大體上來說不太會有什麼問題。當您要備份及還原資料庫時,要如何管理 ADFS 呢?還好有一個免費下載的管理工具。我找到了一個連結,說是 SQL Server 2005,但仍然可以和 Windows Internal Database 一起運作。以下是這個工具的下載網站:https://www.microsoft.com/downloads/zh-tw/details.aspx?familyid=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796,工具名稱是 "SQL Server Management Studio Express"。
- 當您開啟這項工具時所需要的連結並不如想像中地好找,所以我將它貼在這裡;您可以在連線對話方塊開啟時,將這個連結複製並貼到工具中:\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query。
- 當您重新安裝 ADFS 時,可能會在 ADFS 精靈完成之後,收到一則警告表示因為已安裝 ADFS 網站,所以精靈未覆寫網站的內容。之後還會列出一個連結,指示您如果要重新部署該網站,就請按一下該連結。重要! 這個連結 完全無用!很嚇人對吧?但請稍安勿燥,因為更糟的還在後面。當您在 IIS 管理員嵌入式管理單元中時,將看不到「任何」ADFS 虛擬目錄。更令人洩氣的是,您必須使用 appcmd 刪除虛擬目錄!我使用了下列兩個命令執行這個動作:
- C:\Windows\System32\inetsrv>appcmd delete app "Default Web Site/adfs/card"
- C:\Windows\System32\inetsrv>appcmd delete app "Default Web Site/adfs/ls"
- 當您移除完這些障礙物之後,可以再次執行 ADFS 精靈,將所有項目設定妥當。當一切就緒之後,您就可以還原您所備份的資料庫了。以下提供一些實用的小秘訣:
- 關閉開啟中的 ADFS 管理應用程式
- 停止 ADFS 服務
- 先還原 AdfsConfiguration 資料庫
- 啟動 ADFS 服務
- 還原 AdfsArtifactStore 資料庫
- 開啟 ADFS 管理應用程式 (所有項目應會順利運作及還原)
- 最後您可能也想知道 ADFS 以什麼做為簽署憑證的 Token。它會先嘗試使用安裝時所建立的自我簽署憑證。但您先前若曾經使用過其他憑證,ADFS 將會放棄使用自我簽署憑證,而改用您先前造訪 SharePoint 網站時所使用的憑證 (請參閱我在 https://blogs.technet.com/b/speschka/archive/2010/02/13/root-of-certificate-chain-not-trusted-error-with-claims-authentication.aspx (可能為英文網頁) 一文中所述舊有未獲信任的根授權訊息)。但是,在您新增 Token 簽署憑證之前,請記得先在 ADFS 伺服器上執行下列 PowerShell 命令:
- add-pssnapin Microsoft.adfs.Powershell
- set-adfsproperties -AutoCertificateRollover $false
- 新增 Token 簽署憑證時,如果您先前將該憑證設為主要憑證,請別忘了再將其設為主要憑證。
希望這篇文章對您有所助益。
這是翻譯後的部落格文章。英文原文請參閱 Tips for Upgrading or Moving ADFS 2.0