Shibbolethの現状

今後のためにまとめておく(間違ってるかも).
ShibProtocols
これ見れば分かるけどSAML 2.0の実装とはいえ,まだ完璧ではない.

仕様書

Shibboleth 2.0のをそろそろ公開して欲しい.俺が見つけることが出来てないのかもしれないけど,Wikiのページにはない.要はSAMLとすり合わせたいってだけなんけども.

シングルログアウト

これが一番厳しい.SPは実装しているけどもIdPが実装してない(前試した時にIdPからレスポンスが来なくて何でなのかと).上の表を見る限りはバックチャンネル*1で可能にするようにするつもりっぽいけど,互換性でAAもバックチャンネルで行うはずなので,その辺どうするのか気になる(SLOプロファイルで切り替えかな?).
どちらにしろアプリケーションからのログアウトはどうするのか(ページではブラウザを閉じましょうってことで,認証情報の破棄を推奨かな).

Nofify

SPのアクションにフックを掛けることで,追加のアクションを行うことが出来る.が,現状frontはログアウトしか対応してないので以下のようになる.

https://foo.bar.org/?action=logout&return=https://foo.bar.org/Shibboleth.sso/Logout

けどこれって汎用性があるのかなぁと疑問.SPからログアウトしてからreturnパラムでアプリケーションからログアウトした方が流れ的にも綺麗.そもそも再帰的に扱えないので,複数ある時はどうすればいいの?

NameID

SAML 2.0になってからSPが提供するNameID?もあるわけで,以前みたいにNameIdentifierだけじゃ済まない気がしている(正直SPprovidedIDの使い道は分からないが).
まだ未実装のMappingに関しても使い道はどうなのかなぁと.シングルログアウトはトリガーがどこであれNameIDを管理しているIdPから他のSPへとリクエストが行くはずだし,SPとSPがNameIDを通して連携するイメージが例がないこともあって沸かない.
正直この辺りはあまり理解してないので,もう少し理解が必要っぽい.Libertyとかにも手を出す必要があるのかなぁ.

Common Domain

これ昨日DS書くためにSAMLの仕様を再度読み直していてやっとすっきりした.SAMLだとCommon Domain Cookieに対してWriting/Readingサービスがあって,IdPで認証が通ればWritingし,SPがそのCookieに対してReadingするのが一応の仕様.で,Shibbolethだとその全てをDS(WAYF)が担当するってことらしい.いやまぁ自分が前書いたWAYFもCommon Domain CookieにIdPを書き込んでいたけども,正直この値をSPとかが使ってくれるのかと思ってた.
今更理解したのだけど,共通ヴァーチャルドメイントラストサークルの構成はやっぱり難しいなぁと思っている.

その他

何かRubyとか他の言語にも対応するって言ってるけど,正直どこのことか分からない.それと,API関係は何か用意しないのかなぁと(POSTとかあるのでそれに対してSAMLをリクエストすればいいのだけど).

他のSAML実装

OIOSAML.java
.NETとかもあるらしく,何か出てきてた.


とまぁこんな所か.属性周りとかmetadataに関しては1.xの頃からそれほど不満はなかったので書いてない(Chainとかで使いやすくはなってるしね).OpenIDが2.0からAttributeExchengerだっけ?仕様公開しているし,結構方向性が似てきてるので今後この辺どうなるのか.
時間があればSP 2.1をインストールして見るかな(またコンパイルエラーが出たらどうしようw).

*1:Shibbolethではアクションをfront/backの二つに分けている