6

私は完全に困惑している興味深い問題を抱えています。

別の部署が管理するマシンによって設定された 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内のある種の診断モードをオンにするか、それをデバッグするためのコードを用意することを除いて...私は良いアイデアを使い果たしました。

バグに遭遇したか、いくつかのレジストリ設定または同様のものが微調整されたか、またはどこかが破損したと考えています。

何か案は?

4

2 に答える 2

3

ここで問題を追跡したと思います。

これは IE のバグに違いありません。実際、髪を分割する場合は 2 つです。

myserver.domain.com と my2.domain.com をかなり早い段階で IE のセキュリティ ダイアログの信頼済みサイト リストから削除しましたが、これらのサイトは両方ともレジストリのゾーン構成に残っていました。サーバーの名前をレジストリで検索することで、これを理解することができました。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains の下にサブキーがあります。

domain.com の場合

また、domain.com の下には、「信頼済みサイト」リスト ダイアログから削除した 2 つの異なるサーバー用の 2 つのサブキーが残っていました。どちらも値 * の REG_DWORD が 2 に設定されています。これはもちろん、サイトを信頼済みサイトに入れることを意味します。

この特定のキーとゾーンを変更するために使用できる値について説明している「Scripting Guy」の古い記事を掘り起こすことができました。 http://blogs.technet.com/heyscriptingguy/archive/2005/05/02/how-can-i-add-a-site-to-internet-explorer-s-restricted-sites-zone.aspx

おそらく、これらの設定は何らかの方法で UI で非推奨になっていますが、まだ読み取り/使用されていますか? わかりませんが、UI に表示されているものと実際に使用されているものが明らかに一致していません。

さらに、前のコメントで述べたように、myserver.domain.com のルートにアクセスすると (サーバーから 403 が返されました)、ステータス バーに「インターネット | 」と表示されました。保護モード: オフ」は、「信頼済みサイト | 信頼済みサイト」と読むべきだったため、混乱を招くだけでした。保護モード: オフ」。

したがって、解決策は最終的に次のいずれかになりました

a - すべてがインターネット ゾーンに移動するように、上記で指定した reg キーを削除します。または b - すべてがインターネット ゾーンに移動するように、信頼済みサイトのリストに *.domain.com を追加します。

これらの問題を IE チームの Eric に報告していただけないでしょうか?

正しい方向に向けてくれてありがとう!

于 2009-11-11T21:07:20.580 に答える
1

多くの人がさまざまな意味で使用しているため、「ドメイン」という言葉には十分注意する必要があります。

http://blogs.msdn.com/ieinternals/archive/2009/09/19/Private-Domain-Names-and-Public-Suffixes-in-Internet-Explorer.aspx

説明からすると、次の投稿で説明されている「ログイン Cookie のトラブルシューティング」セクションの問題 #3 にぶつかっているように思えます 。 -IE.aspx に保存されたログインの問題

Cookie の問題を解決するには、ゾーン / 整合性レベルの問題を解決する必要があります。

于 2009-11-11T18:56:10.407 に答える