Webアプリケーションプロキシのトラブルシューティング (2)

皆さんこんにちは。国井です。

今日はADFSを外部公開するときに使用する、Webアプリケーションプロキシ(WAP)のトラブルシューティングについてです。
WebアプリケーションプロキシはADFSサーバーのプロキシサーバーとして動作するもので、
ADFSサーバーとWAPの間での信頼関係は欠かせません。しかし、信頼関係が何かのトラブルでなくなってしまった場合、トラブルシューティングしようにも、ユーザーインターフェイスが簡易的すぎて、どこを見ればいいか、わかりません。そこで、今回は信頼関係の再構築のケースをもとにトラブルシューティング方法を見てみます。

■ ■ ■

信頼関係はWebアプリケーションプロキシのインストール後に実行可能な
Webアプリケーションプロキシ構成ウィザードを使って設定します。

このとき、ADFSサーバーとWebアプリケーションプロキシで信頼関係が結ばれると
その証として、「ADFSProxyTrust」という名前の証明書が生成されます。

ADFSProxyTrust証明書は20日程度の短い有効期間の証明書で、
期限が近づく(5日前?)と自動的に証明書をロールオーバーし、有効期間を延長してくれます。

ところが、Webアプリケーションプロキシが何らかの理由でシャットダウンし、
ADFSサーバーと通信できなかった場合、証明書のロールオーバーができないため、
証明書の期限は切れ、信頼関係もなくなってしまいます。
(ちなみに、本稿を執筆している日は4月27日なのですが、4月9日で期限が切れている..)

image

その様子はWebアプリケーションプロキシの管理ツールである、リモートアクセス管理コンソールから確認できます。(エラーコード 0x8007250Cが特徴です)

image

こうなったら、信頼関係を結びなおすしかありません。ただし、上の画面でもわかるように、
信頼関係を結びなおすために使うWebアプリケーションプロキシ構成ウィザードを実行できません。

というわけで、PowerShellを使います。
Install-WebApplicationProxyコマンドレットで信頼関係を作り直しているのですが、
このコマンドレットを実行するにはCerticateThumbprintを指定する必要があります。
そのため、事前にWAPにインストールした証明書のThumbprint(拇印)を調べておいてください。

2015年7月1日追記
Install-WebApplicationProxyコマンドレットは
Install-WebApplicationProxy -CertificateThumbprint <拇印> -FederationServiceName <フェデレーションサービス名>
のように記述してください。

自分のコンピューターにインストールされた証明書はPowerShellから
次のコマンドで確認できます。

cd cert:\
cd LocalMachine\My
dir

実行時の様子と結果はご覧のとおり。
(ワークプレースの警告は無視してください)

image

すると、信頼関係は再度設定され、ADFSProxyTrust証明書は新しいものが発行され、

image

そして、 リモートアクセス管理コンソールは元の姿に戻ります。

image

もうひとつの方法として、信頼関係が失われたWAPのレジストリで
HKLM\Software\Microsoft\ADFSのproxyConfigurationStatusの値を1に設定すると
再び利用できるという技もありますが、こちらは実行すると
これまでにWebアプリケーションプロキシで設定した「公開されたWebアプリケーション」の設定が全部消えるのでご注意を(↓ご覧のとおり)。

image