Shibboleth SPがSimpleSAMLphpの SingleLogout 要求で怒った場合
なんと具体的でくだらないんでしょう。
前回 の設定で普通のBASIC認証の代わりにSSOを使うのは出来たのだった。この場合、SPからログアウトするUIがそもそもないので、何も問題なかった。
ただ、SAMLには一斉ログアウト機能があり、これを使うとSimpleSAMLphpの標準のメタデータ記述だと問題になることがあるよーだ。まぁ、ShibbolethをIdPにした時にも同じ問題見たから予想ついたんだけど。
具体的な手順は以下のようになる。
というわけでわかってしまえば直す場所は分かりやすい。エラーをはいてるのはShibbolethなので、問題児はSimpleSAMLphpだ! (えっ
具体的には、saml20-sp-remote.xml のShibboleth SPの設定に certData と redirect.sign (SingleLogoutService が Redirect のものになっていると仮定) を追加する。これで直ったように見える。エラーは出なくなった
以前 SP をSimpleSAMLphp、IdPをShibbolethにしたときに似たようなエラーが出て、そのときは 'assertion.encryption' を設定して直したこともある。SimpleSAMLphpは基本的にencryptionしないということで、案外色々駄々漏れなので注意しよう。
ただねー。これでSingleLogoutしたのにShibboleth SPでのログインはまだ有効なように見えていて、なんでなんだろうねー。対症療法なのかもしんない。
前回 の設定で普通のBASIC認証の代わりにSSOを使うのは出来たのだった。この場合、SPからログアウトするUIがそもそもないので、何も問題なかった。
ただ、SAMLには一斉ログアウト機能があり、これを使うとSimpleSAMLphpの標準のメタデータ記述だと問題になることがあるよーだ。まぁ、ShibbolethをIdPにした時にも同じ問題見たから予想ついたんだけど。
具体的な手順は以下のようになる。
- IdPはSimpleSAMLphp
- SPはShibboleth SPとそれ以外でSingleLogoutを行えるもの
- この状態で
- Shibboleth SPからIdPへ認証要求、そして認証
- もうひとつのSPで既存の認証情報を使ってログイン (SSO!!)
- その「もうひとつ」の方からログアウト
原因は多々あり得る (バグのケースもあり得るもちろん) のだけど、今回ハマったケースについては、SimpleSAMLphpがデフォルトで色々セキュリティ関係の情報を送らないのがShibbolethと相性悪いんじゃねーか、というのが予想。opensaml::SecurityPolicyExceptionThe system encountered an error at Tue Dec 4 17:53:32 2012To report this problem, please contact the site administrator at admin@example.com.Please include the following message in any email:opensaml::SecurityPolicyException at (https://(hostname)/Shibboleth.sso/SLO/Redirect)Security of LogoutRequest not established.
というわけでわかってしまえば直す場所は分かりやすい。エラーをはいてるのはShibbolethなので、問題児はSimpleSAMLphpだ! (えっ
具体的には、saml20-sp-remote.xml のShibboleth SPの設定に certData と redirect.sign (SingleLogoutService が Redirect のものになっていると仮定) を追加する。これで直ったように見える。エラーは出なくなった
以前 SP をSimpleSAMLphp、IdPをShibbolethにしたときに似たようなエラーが出て、そのときは 'assertion.encryption' を設定して直したこともある。SimpleSAMLphpは基本的にencryptionしないということで、案外色々駄々漏れなので注意しよう。
ただねー。これでSingleLogoutしたのにShibboleth SPでのログインはまだ有効なように見えていて、なんでなんだろうねー。対症療法なのかもしんない。