気まぐれSE日記

地方でエンジニアしてます

Shibboleth(シボレス)認証 その後

ほぼ一年くらい放置していたシボレスのプロジェクトをやっております。
シボレスの環境構築するのは、さすがに資料見てもお手上げだったのであきらめた。サーバ2台必要とかtomcatとかめんどくさそうだったから..なぁ。


で、シボレスと連携するようなシステムを作れと言われて慌てています。連携と言っても単に、シボレス認証でOKとなったときのユーザが入力したユーザIDだけを拾ってくるだけのことなんですけどね。



シボレス認証に関しては説明省略しますが、このシボレスを利用したユーザ認証後、指定のURLリダイレクトされるということが認証が通ったことになります。認証が正しく行かなかった場合はエラー画面が表示されて終了です。

認証がOKの時は、Shibboleth のモジュールからapacheのサーバ変数でシボレス側の値が取得できる。


認証後のこんなのが取得できる

Shib-Application-ID default
Shib-Session-ID _0f4f...セッションID
Shib-Identity-Provider http://IDPのURL
Shib-Authentication-Instant 2010-01-28T07:51:57.100Z
Shib-Authentication-Method urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
Shib-AuthnContext-Class urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
login_id ログイン時のユーザID

「Shib-*」がシボレス系の情報なんだけど、開発では特に必要となるのは戻り側のIDPのURL?「Shib-Identity-Provider」くらい?「login_id」ってベタな変数が来ているけどこれがログイン時のIDになるのかなぁ??


一年前のShibboleth資料と値が違っているのが気になる・・・。


まあ、取れると言うことが確認できたのでこれをPHPに持って行けば終わり。
見通し経ったのでいいかなと思った。


参考
019 もうID・パスワードの入力は1回だけ!OSSのShibbolethでシングルサインオン - EC-One ナレッジセンター レスキューサービス ブログ