- PR -

Apache-Tomcatにおいて、HTTP認証のパスワードフック

1
投稿者投稿内容
ぺんぎん
会議室デビュー日: 2008/09/13
投稿数: 3
投稿日時: 2008-09-13 22:34
こんにちは。お世話になりますがよろしくお願いします。

Apache2-Tomcat6環境(mod_jk2使用)において、HTTP認証(Digest)でユーザー名とパスワードを取得する方法を探しております。(目的はシングルサインオンを実装するためです。)

PHP5.1以降であれば、PHP_AUTH_USER,PHP_AUTH_PW,PHP_AUTH_TYPE に代入されているので簡単に取り出せます。

ユーザー名のみであれば、HttpServletRequest#getRemoteUserで取得できることは調べたのですが、可能であればパスワードを取得したいです。


どうぞよろしくお願いします。



[ メッセージ編集済み 編集者: 未記入 編集日時 2008-09-13 22:35 ]

[ メッセージ編集済み 編集者: ぺんぎん 編集日時 2008-09-13 22:43 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2008-09-14 04:43
引用:

ぺんぎんさんの書き込み (2008-09-13 22:34) より:
Apache2-Tomcat6環境(mod_jk2使用)において、HTTP認証(Digest)でユーザー名とパスワードを取得する方法を探しております。(目的はシングルサインオンを実装するためです。)


念のため確認ですが、本気でBasic認証ではなくてDigest認証ですか?
ぺんぎん
会議室デビュー日: 2008/09/13
投稿数: 3
投稿日時: 2008-09-14 09:28
引用:

なちゃさんの書き込み (2008-09-14 04:43) より:
引用:

ぺんぎんさんの書き込み (2008-09-13 22:34) より:
Apache2-Tomcat6環境(mod_jk2使用)において、HTTP認証(Digest)でユーザー名とパスワードを取得する方法を探しております。(目的はシングルサインオンを実装するためです。)


念のため確認ですが、本気でBasic認証ではなくてDigest認証ですか?




お返事ありがとうございます。いまのところDIGESTで考えていますが,もしBasicであれば可能ということであれば,Basicで検討します。
よろしくおねがいします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-09-14 11:16
BasicであればヘッダをBase64でデコードすればパスワードがとれますね。
ぺんぎん
会議室デビュー日: 2008/09/13
投稿数: 3
投稿日時: 2008-09-14 12:13
ありがとうございます。

 Digest認証の方はどうでしょうか…?

 よろしくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-09-14 23:20
Digeest認証ではリクエストヘッダにはハッシュ化されたパスワードしか含まれていないので復元はできませんね。
Basic認証で、Base64で簡単に復元できた弱点を解消したものが Digest 認証とも言えます。
アプリケーション的にはたぶんむりです。Tomcat 側にハックを施すしかないと思います。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2008-09-14 23:29
ApacheもTomcatも詳しくないのでどちらで認証が実行されるのか分かりませんが(多分Apache側?)…

インギさんの仰るように、DIGEST認証ではリクエスト内容からパスワードを復元することはできません。
よってパスワードを取得するには、サーバ側で認証済みユーザのパスワードを保持している必要があります。
しかし、通常DIGEST認証用にはパスワードのハッシュしか保持していないことが多いと思いますので、そこをどうにかする必要があります。

※シングルサインオン先が同じ仕組みのパスワードハッシュだけでいいなら別ですが。
1

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