Windows 2012のIIS 8.0 Web Agentで、"Application Request Routing" (ARR)を使用すると、発行されるSMSESSIONクッキーのDomainが正しく設定されません。その結果、複数Web Agent間でシングルサインオンが機能しません。
【Domainの例】
• 期待されるクッキードメイン:Domain=.example.com
• 発行されたクッキードメイン:Domain=.myServerName.example.com
ARR側の設定としては、SSO側のPolicy設定で保護した仮想フォルダについて、機能"URLRewrite"の"Inbound Rule"を追加してバックエンドのサーバーにリクエストをフォワードしています。
Release: r12.5x
Component: Web Agent for IIS
この問題はARR側の設定によるものです。
Web Agentトレースログを見ると、SMSESSIONクッキーのDomainは正しく設定されており期待されるクッキードメインが確認できます。
しかし、ブラウザが受け取るクッキーのDomainは、上の例のように、ARRが設定されているフロントエンドのサーバー名が付加されていることが確認され、不整合が生じています。
対策としては、以下の手順でARRのProxy設定でクッキードメインの書換えを抑制するようにします。
1. IISマネージャーで対象のサーバーを選択する
2. 機能"Application Request Routing Cache"を選択する
3. 操作Proxyで"Server Proxy Settings..."を選択する
4. 以下の項目をOFFに変更する(下図を参照)
"Reverse rewrite host in response headers"
◆補足
IIS ManagerのServer Farmsでバックエンドサーバを登録し、機能"Routing Rules"の"URL Rewrite..."を設定した場合、この問題は発生しません。
参考: 以下のIIS.NET Forumsに関連情報があります。