0

JETTY でシングル サインオンをサポートしようとしています。Jetty の SSO サポートを通じてシングル サインオンをサポートする Web サーバーを実行している 2 つのサブドメインがあります。

account.test.com app.test.com

*.test.com に設定された SSOSession Cookie がありますが、サインオフをサポートするには、app.test.com で実行されている Jetty サーバーで JSESSIONID Cookie がリセットされていることを確認する必要があります。

現在、Jetty JAAS FormAuthenticator を使用し、SSORealm をオーバーライドして、FormAuthenticator が呼び出されたときに SSOSession Cookie の検証をサポートしています。

account.test.com でユーザーがサインインできるようにしたいと考えています。これにより、app.test.com で使用されている JSESSIONID Cookie が無効になります。

おそらくより正確な解決策の 1 つは、SSOSession Cookie の変更を検出し、サーバー上の JSESSIONID を無効にすることです。

4

1 に答える 1

0

JettyやJSESSIONIDの仕組みについては何も知りませんが、JSESSIONIDの有効性を特定のSSOSessionCookieに関連付けたいようです。

1つの可能性-app.test.comで新しいセッションを作成する場合、新しいJSESSIONIDとは別に、ドメインapp.test.comにSSOSig = MD5(JSESSIONID + SSOSessionCookie + secret)という新しいCookieを設定します。

ユーザーがapp.test.comを操作すると、サーバーはJSESSIONID、SSOSig、およびSSOSessionIDを受け取ります。account.test.comへのサインインのためにSSOSessionIDが変更された場合は、JSESSIONID、SSOSig、およびSSOSessionID'を受け取ります。MD5(JSESSIONID + SSOSessioID'+ secret)!= SSOSigであるため、SSOSigの検証は失敗します。この時点で、JSESSIONIDを無効にできます。

于 2010-02-13T18:48:59.357 に答える