ADFS 2.0 へのアップグレードまたは移行に際してのヒント

原文の記事の投稿日: 2011 年 8 月 9 日 (火曜日)

最近、ADFS サーバーのアップグレードに意外と手間取ってしまいました。私のケースは、Windows Server 2008 から 2008 R2 へのアップグレードでした。SharePoint を使っておられる多くの方々と同じように、クレーム ベースで楽々作業を進めようとしたのですが、一見簡単なことにこれほどまごつくとは思いませんでした。以下のヒントが、皆さんの参考になれば幸いです。

  • Windows Server 2008 の ADFS 2.0 から Windows Server 2008 R2 に直接アップグレードするパスは現実にはありません。したがって、ADFS が完全にアンインストールされます。そのため、アップグレードすると、ゼロからやり直しといったことになるわけです。そこで、データベースを最初にバックアップしておくことをお勧めします。詳しくは、以下をご覧ください。
  • ADFS では、実は、あのいまわしい Windows Internal Database が使われています。SharePoint ファームをただ運用するだけなら別に問題はありません。しかし、データベースのバックアップと復元が必要な場合は、それをどう扱うかが問題になります。幸い、管理用ツールを無料でダウンロードできます。私が見つけたリンクは "SQL Server 2005" となっていましたが、Windows Internal Database でも問題なく動作しました。ツールのダウンロード元は https://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796 で、ツールの名前は "SQL Server Management Studio Express" です。
  • このツールを開くときに必要となる接続文字列は直感的にわかるものとは言い難いので、ここにそのまま貼り付けておきます。接続ダイアログが表示されたら、これをコピーして貼り付けるだけでよいはずです: "\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query" (引用符は含めない)
  • ADFS を再度インストールすると、ADFS ウィザードの終了後に "インストール済みの ADFS Web サイトがあって、そのコンテンツに上書きできない" といった警告が出ることがあります。リンクが示され、Web サイトを再度展開したければ、リンク先の指示に従えというのです。注意:   このリンクはまったく 役に立ちません! 何ともひどい話ですが、まあお聞きください。さらに腹が立つのは、IIS マネージャー スナップインを見ると、ADFS 仮想ディレクトリがまったく見当たらないのです。たまりませんね! 結局、appcmd で vdirs を削除するしかありません。そのために次の 2 つのコマンドを使いました。
    • 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 Management アプリケーションを開いていた場合は、それを閉じます。
    • ADFS サービスを停止します。
    • AdfsConfiguration データベースを最初に復元します。
    • ADFS サービスを開始します。
    • AdfsArtifactStore データベースを復元します。
    • ADFS Management アプリケーションを開くと、すべてが正常に復元されているはずです。
  • 最後に、トークン署名証明書の代わりに何が使われているか確認するとよいでしょう。それはインストール時に作成する自己署名証明書を再び使おうとしますが、以前別の証明書を使用していた場合には、当然、以前それで動作していた SharePoint サイトに移動するとき失敗します (https://blogs.technet.com/b/speschka/archive/2010/02/13/root-of-certificate-chain-not-trusted-error-with-claims-authentication.aspx (英語) で説明した、以前の信頼されていないルート証明機関メッセージ)。新しいトークン署名証明書を追加するだけですが、その前に以下の PowerShell コマンドを ADFS サーバー上で実行しなければなりません。
    • add-pssnapin Microsoft.adfs.Powershell
    • set-adfsproperties -AutoCertificateRollover $false
  • トークン署名証明書を追加する場合は、以前の構成とは関係なく、必ずプライマリ証明書にしてください。

これが皆さんの役に立つことを願っています。

これはローカライズされたブログ投稿です。原文の記事は、「Tips for Upgrading or Moving ADFS 2.0」をご覧ください。