[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-fed:00417] Re: IdPからの認証情報取得について(質問)



片岡様
西村です。

返答が遅くなりまして申し訳ございません。

まず、SPのセッションとIdPのセッションは独立に考えられます。例えばSPにログインして
ずっと使用している場合。SPはタイムアウトを起こさないのでセッションが持続しますが、
その間IdPに問い合わせが行かないので、IdP側ではすでにタイムアウトしてセッションが
切れているという状態があり得ます。
また、複数のSPがある状況では、IdPにセッションが存在することが必ずしもあるSPにセッション
があることを意味しません。

その上で、ある特定のIdPの状態を確認したい場合、ログイン/ログアウトボタンを設置した
いサイトをSP化して、isPassiveパラメータを付けて認証要求するという方法が考えられます。
isPassiveをtrueにして認証要求すると、ユーザが介在しなくてもOKの場合はそのまま返って、
そうでない場合はエラーが返ります。つまりエラーの場合はIdPにセッションがないというこ
とが判別できます。
詳しくは以下のページをご覧ください。
https://wiki.shibboleth.net/confluence/display/SHIB2/isPassive
最近Shibboleth Users MLでも話題が出ていました。
件名: Passively check for session with multiple IdPs
https://groups.google.com/group/shibboleth-users/browse_thread/thread/f425ede8ea47c428

その他の方法として、一般的な方法になりますが参照したいセッション情報を持つサイトで
CGI的なスクリプトを動かしてログイン/ログアウトボタンのHTML or JavaScript or JSONなど
を生成し、それを他のサイトのページに埋め込むという方法があるかと思います。
もちろん、通常取得できない「その人がそのサイトにログインしているかどうか/IdPで認証し
ているか」という情報が、全くの第三者サイトに漏れる可能性があることにご注意ください。
# つまり、その情報は漏れてもかまわないという前提で構築するか、iframeのように漏れない
# 方法を使うか、漏れないような方策を講じるか、ということです。
# # 最初にあげたisPassiveの方法は、学認参加SPでなければ取得できない、という点で異なります。

漏れないような方策として、汎用的な方法で特定の(かつ新めの)ブラウザでのみ機能する方法
はcross-domain XHRが思いつきますが、私よりもっと精通した方がいらっしゃるのではないで
しょうか。

もう一つ、状況によりますが
> (クッキーのドメイン情報と表示されているページのドメインが一致していない)
クッキーを取得できる範囲を広げる、という簡便な方法も考えられるかもしれません。

(2011/10/20 18:09), Shin Kataoka wrote:
> 学術認証フェデレーションMLのみなさま
> 
> 九州大学の片岡です。
> もしご存知の方がおられましたら、教えてください。
> 
> 図書館のウェブサイトや検索サービスに、Shibboleth SPへの認証ボタンを付けて、ログイン/ログアウトできるようにしたいと考えています。
> ログインボタンは簡単に設置できたのですが、ログインしているときにログアウトボタンに切り替えるところで躓いています。
> 
> SPのセッション情報を取得して判断する方法も考えられますが、そこはある理由(クッキーのドメイン情報と表示されているページのドメインが一致していない)から、使うことができませんでした。
> IdPの方のセッションステータスを参照することは可能でしょうか?
> もし可能なようでしたら、技術的にどうすればよいか、ご助言いただけますとありがたいです。
> 
> お手数をおかけしますが、どうぞよろしくお願いいたします。

-- 
西村健
国立情報学研究所 TEL:03-4212-2720