私は完全に困惑している興味深い問題を抱えています。
別の部署が管理するマシンによって設定された IBM LTPA トークン Cookie を読み取り、それを検証し、それを使用して (いくつかの特別な Cookie を設定することによって) 私のグループが管理するシステムにログインする、私が作成した実動コードがあります。このシングル サインオン プロセスは、エンド ユーザーに対して完全に透過的であり、すべてのブラウザーで数年間、本番環境で正常に動作しています。
最近、IE8 を使用している開発マシンで正しく動作しないことに気付きました。最近、Vista から Windows 7 にアップグレードしました。ただし、これがアップグレードの前後に私のマシンで機能しなかったかどうかはわかりません。この同じマシン上の FireFox 3.5 と Chrome 4 dev は両方とも期待どおりに動作します。このマシンの XP SP3 仮想上の IE6 は正常に動作します。自宅の複数のマシンの IE8 は正常に動作します (Windows Server 2008 と Windows 7 の両方)。
診断目的で、開発用 IE8 (WinInet キャッシュ) からすべてのキャッシュ データを消去して、白紙の状態から開始しました。私は Fiddler を起動してプロセスを追跡し、何が機能していないかを判断しました。私が見つけたものはかなり興味深いもので、説明することはできません。
最初のサイト (ltpa.domain.com と呼びましょう) にログインした後、セッション Cookie は Set-Cookie ヘッダーで期待どおりにサーバーからプッシュ ダウンされます。ドメインが .domain.com に正しく設定され、パスが / であることを確認します。ログイン後のブラウザからの後続のすべてのリクエストは、期待どおりに各リクエストですべての Cookie をサーバーにプッシュします。実際、これはポータルであり、たとえば、portal.domain.com からも取得される追加のコンテンツがいくつかあります。すべての Cookie もそのサーバーに正しく渡されます。
興味深いことに、myserver.domain.com にリクエストを送信すると、ltpa.domain.com によって設定されたドメイン レベルの Cookie が myserver.domain.com にプッシュされるはずですが、プッシュされません。 Cookie がない場合、シングル サインオン プロセスは自動的に ltpa.domain.com にリダイレクトします (そして、ltpa ログイン プロセスがリダイレクトに使用するクライアントに Cookie をプッシュします) -- myserver によって設定されたドメイン レベルの Cookie はプッシュされません。 ltpa.domain.com に戻ります。
繰り返しますが、これは、私が認識している開発マシン上の IE8 のこの 1 つのインスタンスでのみ発生します。このプロセスは、かなり大規模なユーザー ベースで 1 日に何千回も使用されており、エンド ユーザーからのその他の苦情はありません。つまり、これが IE8 のシステム的な問題であるなどの兆候はありません。
この動作は、myserver.domain.com と ltpa.domain.com を別のドメインとして扱っているように見えますが、そうではありません。
言及する価値のある興味深い点が 2 つありますが、これは常にこの方法であり、問題を引き起こしたことがないため、ニシンである可能性があります。
DNS はここでは少しファンキーです。LTPA.domain.com は外部 IP に解決されます。ただし、myserver.domain.com は内部 IP に解決されます。その IP で逆ルックアップを実行すると、内部 dns 名が得られます。たとえば、myserver.internal.domain.com としましょう。DNS ベースの攻撃を防ぐために IE8 がある種の逆ルックアップを行っているのではないかと推測したので、HOSTS ファイルを変更し、テスト目的で myserver.domain.com を外部 IP に指定しました。リクエストが外部 IP に送信されることを Fiddler で確認しましたが、Cookie に違いはありませんでした。彼らはまだ合格していませんでした。
以前は、myserver.domain.com は IE WinInet セキュリティ構成ページ内の「信頼済みサイト」の下にありました。私はそれとそこにあった他の1つのサイトを削除しました. このマシンを my2.domain.com としましょう。このマシンは、偶然にも (あるいはそうではないのでしょうか?)、ltpa.domain.com によって設定されたドメイン Cookie も渡されていません。この例では、Cookie を渡す必要はありませんが、とにかくテストして、この問題が他のマシンに影響を与えているかどうかを確認しました。IE ステータス バーでは、ltpa.domain.com、portal.domain.com、および myserver.domain.com がすべて「インターネット」ゾーンの下に表示されます。ダイアログにリストされていないにもかかわらず、my2.domain.com のステータス バーに「信頼済みサイト」が表示されているのは奇妙なことですか?? はい、変更後に再起動しました。
その他の注意点。
私は、IE および .com 以外のドメイン、引用された Cookie 値、およびその他の Cookie 異常に関する他の問題を認識しています。これらのどれも当てはまりません。Cookie の内部に関する Eric Law の IEInternals の記事を読みました -- http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx
IE で有効になっているファンキーなアドオンはありません。Flash、Silverlight、Live ID サインイン ヘルパー、および Fiddler2 だけです。
ドメイン固有のコンテンツを除外するための InPrivate ルールはありません。
私はラップトップを使用しているので、ホーム ネットワークから (再起動後に) IE8 を試して、DNS の問題を除外しました。私は自宅で同じ動作を経験しているので、私が知る限り、ファンキーな DNS は問題ではありません.
あいまいな Cookie 設定を見逃したのではないかと考えて、すべての IE 設定を何度も調べました。プライバシー設定は「中」で、特別な取り扱いをしているサイトはありません。
開発ツールを使用して、「常にサーバーから更新する」がオフになっていることを確認しました。
他のどこでも問題を再現できないため、これを Microsoft に報告できるものではないと思います。
だからこの時点で、私は途方に暮れています。私が気付いていないIE8内のある種の診断モードをオンにするか、それをデバッグするためのコードを用意することを除いて...私は良いアイデアを使い果たしました。
バグに遭遇したか、いくつかのレジストリ設定または同様のものが微調整されたか、またはどこかが破損したと考えています。
何か案は?