- PR -

tomcatでシングルサインオンを行ないたい

1
投稿者投稿内容
とんび
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2004-01-06 13:01
現在TOMCAT4.1.21で2つのWEBアプリケーションを別々に開発しています。
このアプリケーション間でユーザ情報を共有し、
あるアプリケーションでログインしているときには、もう1つのアプリケーションに
ログインしなくてもよいようにしたい(要するにシングルサイオン)のですが、
ログインをTOMCATの認証を使わずに独自の方法で行っているため、
TOMCATのシングルサインオンバルブを利用することが出来ません。

この対策として
1.ログインしたときに乱数をキーにしてユーザ情報を格納する。
 (Singletonパターンを利用してクラスファイルはshared/libにおく)
2.クッキーにこの乱数を送る。
3.別のアプリケーションに入ろうとしたときはクッキーの値をキーにしてユーザ情報を取得する。

というような手順で行なおうと考えています。
ちなみに2つのアプリケーションは同じtomcat上で動いてます。

この方法ではまずいとか、もっとよい方法があるとか、
自分もおんなじことをやったとかいう方がいらっしゃいましたら、
教えてもらえないでしょうか。
よろしくお願いします。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-01-07 09:42
unibon です。こんにちわ。

引用:

とんびさんの書き込み (2004-01-06 13:01) より:
現在TOMCAT4.1.21で2つのWEBアプリケーションを別々に開発しています。
このアプリケーション間でユーザ情報を共有し、
あるアプリケーションでログインしているときには、もう1つのアプリケーションに
ログインしなくてもよいようにしたい(要するにシングルサイオン)のですが、
ログインをTOMCATの認証を使わずに独自の方法で行っているため、
TOMCATのシングルサインオンバルブを利用することが出来ません。


「シングルサインオンバルブ」っていう機能があるんですね。

引用:

とんびさんの書き込み (2004-01-06 13:01) より:
この対策として
1.ログインしたときに乱数をキーにしてユーザ情報を格納する。
 (Singletonパターンを利用してクラスファイルはshared/libにおく)
2.クッキーにこの乱数を送る。
3.別のアプリケーションに入ろうとしたときはクッキーの値をキーにしてユーザ情報を取得する。

というような手順で行なおうと考えています。
ちなみに2つのアプリケーションは同じtomcat上で動いてます。


乱数に java.security.SecureRandom あたりを使えば、おっしゃるやりかたでも大丈夫そうな気がします。
なお必須ではありませんが cookie はたまに更新したほうが良いかもしれません。これは同じ値を長期間使っているのは避けたほうが良いのでは、という考えからです。
また、SSL を使う場合は cookie については、以前に、
http://www.ipa.go.jp/security/ciadr/20030808cookie-secure.html
という話題がありましたね。
#あまり良くは分かっていませんが。
とんび
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2004-01-07 13:21
引用:

「シングルサインオンバルブ」っていう機能があるんですね。


Tomcatの認証機構を利用していればシングルサインオンバルブとゆうのが利用できるらしいです。
実際に使用しているわけではないので、詳しくはわからないのですが。
#Tomcatの認証機構がもうちょっと柔軟だったらOKなんですが。
#Tomcatの認証機構をいじるというのも考えたんですが、Tomcat以外のAPサーバが使えなくなるので没になりました。

引用:

乱数に java.security.SecureRandom あたりを使えば、おっしゃるやりかたでも大丈夫そうな気がします。
なお必須ではありませんが cookie はたまに更新したほうが良いかもしれません。これは同じ値を長期間使っているのは避けたほうが良いのでは、という考えからです。
また、SSL を使う場合は cookie については、以前に、
http://www.ipa.go.jp/security/ciadr/20030808cookie-secure.html
という話題がありましたね。
#あまり良くは分かっていませんが。


java.security.SecureRandomというのがあるんですか。
参考にさせていただきます。
特に問題もなさそうなのでこの方法でやってみようと思います。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)