ADFS 2.xをWindows Server 2016へ移行

皆さんこんにちは、国井です。
Windows Server 2008のサポート期限切れが近づくにつれて問い合わせが多くなってくるWindows Server 2008で作成したADFS環境をどうやってWindows Server 2016へ移行するか?という話題。

Windows OS全般に言えることですが、基本的に2世代前からのアップグレードはマイクロソフトとしてサポートされることはなく、ADFSも例外ではありません。

2008→2012のアップグレードドキュメント
https://technet.microsoft.com/ja-jp/library/dn486819(v=ws.11).aspx

2012→2016のアップグレードドキュメント
http://azuread.net/2017/02/22/windows-server-2016%E3%81%AEadfs%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89/

というわけで、2008→2016の移行は、アップグレードウィザードみたいな既存の仕組みは全くないので、自分で移行(というか、再構築)していかなければなりません。

では、設定を見てみましょう。

既存環境の設定の確認

まず、移行前と移行後で同じパラメーターで動作させる必要があるので、既存の環境から次のパラメーターを確認しておきます。

・フェデレーションサービス名
・フェデレーションサービスの表示名
・フェデレーションサービスの識別子

次に、サービス通信証明書は移行先でも同じものを使いますので、ADFS管理ツールからエクスポートしておきます。

最後に、証明書利用者信頼などの設定はWindows Server 2016のセットアップディスクの中にあるPowerShellスクリプトを使ってエクスポートすることができます。

エクスポートコマンド
cd <セットアップディスクのドライブ>\support\adfs
export-federationconfiguration.ps1 -Path <エクスポートデータの保存先パス>

Active Directoryスキーマの拡張

ADFSをWindows Server 2016にするってことは、Active DirectoryドメインコントローラーもWindows Server 2016にする可能性が高いと思います。ドメインコントローラーを以前のOSからアップグレードしている場合は、スキーマが古いままになっているので、スキーマもアップグレードしておきます。

スキーマのアップグレードコマンド
cd <セットアップディスクのドライブ>\support\adprep
adprep /domainprep
adprep /forestprep

ADFS 2016の実装

Windows Server 2016のADFS (ADFS 2016と勝手に呼ぶこととする)をインストールします。インストールするときは、ADFS2.xからのサーバー入れ替えになるので、既存のADFSサーバーはシャットダウンしておきます。

ADFS 2016のインストールでは、インストールウィザード中に前の手順で控えておいたパラメーターを入力します。また、サービス通信証明書もインストールウィザード中に入れることになりますが、これも前の手順でエクスポートしておいたものを入れましょう。
これができれば、ADFS 2016環境の出来上がり。

ただし、トークン署名証明書は新しいものに変わってしまっているので、証明書を入れ替える時のステップを実行する必要があります。証明書の入れ替え方法はMSさんのサイトを参考にするとよいでしょう。

AD FS の証明書更新手順(トークン署名証明書、トークン暗号化解除証明書)
https://blogs.technet.microsoft.com/jpntsblog/2016/12/19/ad-fs-%E3%81%AE%E8%A8%BC%E6%98%8E%E6%9B%B8%E6%9B%B4%E6%96%B0%E6%89%8B%E9%A0%86%EF%BC%88%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E7%BD%B2%E5%90%8D%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%80%81%E3%83%88%E3%83%BC/

最後に、前の手順でエクスポートしたデータをインポートしましょう。こちらも同じくWindows Server 2016のセットアップディスクの中にあるPowerShellスクリプトを使ってインポートします。

インポートコマンド
cd <セットアップディスクのドライブ>\support\adfs
import-federationconfiguration.ps1 -Path <エクスポートデータの保存先パス>

これでサービスを再起動すれば、設定を読み取って動作し始めるようになります。

ADFSプロキシの移行

ADFSプロキシ(現Webアプリケーションプロキシ)は、ほとんどサーバー固有の情報を持たないので、作り直してしまったほうが簡単です。作り直すときは、前の手順でエクスポートしておいたサービス通信証明書があれば十分です。

■ ■ ■

トークン署名証明書は作り直さないで移行するオプションなどありますが、細かな話はADFSトレーニングの中で聞いていただければと思います。