1

ユーザーの認証には Shibboleth を使用しました。それはうまくいきます。

問題は、ユーザー/ログアウトに移動した後 (そして、実際にログアウトしたと思います)、ユーザーがすぐに自動的に再認証されることです!

解決策はありますか?

ありがとう!

4

3 に答える 3

3

これは、達成したい内容にもよりますが、やや複雑な問題です。悪いニュースは、知っておくべき人々によると、SingleLogOff は基本的に機能しないということです。これは、少なくともローカル アプリがログイン情報をキャッシュする可能性があり、全員にログアウトするように伝える信頼できる方法がないためです。

ただし、サービス プロバイダーの特定のセッションからログアウトするのは、 https://yourhost/Shibboleth.sso/Logout?return=http://www.google.comそのセッションを破棄してユーザーを特定の URL にリダイレクトするユーザーを送信するのと同じくらい簡単な場合があります。

IdP とのセッションを破棄するには、おそらく_idp_sessionIdP によって設定された Cookie を消去する方法が必要になるでしょう。これは、IdP を制御している場合は簡単ですが、そうでない場合はそうではありません。(shibd SP は、IdP セッションからログアウトするように IdP に指示することもサポートしていますが、IdP はサポートしていません。)

SHIB 3リリース後に編集

Shibboleth 3 はSLOをサポートするようになりました。

于 2012-07-06T07:58:06.133 に答える
1

シングル ログアウトは機能しません。探す必要はありません。SP からログアウトできますが、IdP の SSO チェーンからログアウトする実際の方法はありません。

Shibboleth IdP は SSO であり、SP でのログアウトを上書きする Cookie をキャッシュします (これを回避する唯一の方法は、SP ログアウト後にユーザーに SP での認証を強制することです - SAML 構成 - これは実質的に、SP がは SSO を受け入れなくなりました)。

IdP Cookie を強制終了すると、今後の SSO が防止されるだけで、既存のセッションからユーザーがログアウトされることはありません。

SSO の世界で完全にログアウトする唯一の方法は、ブラウザー セッションを強制終了することです (ブラウザーの種類ごとに方法が異なります)。

いわゆる SLO エージェントがあります。これは、SSO セッションでアクセスした各 SP にアクセスして、個別にログアウトし、IdP セッションを強制終了しようとします。これは、複数の SP がある SSO 環境ではまったく実用的ではありません ( 1 つの SP への 1 回のコールで失敗するだけで、ログアウト プロセスが完了しません)。

于 2012-07-07T06:58:57.430 に答える
0

@ user353829 SSO の世界で完全にログアウトする唯一の方法は、ブラウザ セッションを強制終了することです

わかりました...それは部分的に真実です。一般に、SAML2 (Shibboleth が実装) はシングル ログアウトの仕様を提供します ( 32 ページ)。問題は、実装が非常に難しく (@Ulrich Schwarz が提供する SLOIssues を読む)、グローバル ログアウトを適切に理解するようにユーザーをトレーニングする場合はさらに悪いことです (もう一度SLOIssuesを注意深く読んでください)。

しかし、SLO が実際にどのように機能するかを完全に理解している場合は、ハンガリーのチームによって作成された実用的な実装があります。

私は現在それをテストしており、Facebook Login Moduleとの統合に成功しています。そしてそれはうまく機能します。

このハンガリー語モジュールが最新の公式 Shibboleth リリースに含まれていないのには理由があることを覚えておいてください。

役に立ったことを願っています

于 2012-12-10T11:16:50.303 に答える