- - PR -
Apache-Tomcatにおいて、HTTP認証のパスワードフック
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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 ] | ||||||||
|
投稿日時: 2008-09-14 04:43
念のため確認ですが、本気でBasic認証ではなくてDigest認証ですか? | ||||||||
|
投稿日時: 2008-09-14 09:28
お返事ありがとうございます。いまのところDIGESTで考えていますが,もしBasicであれば可能ということであれば,Basicで検討します。 よろしくおねがいします。 | ||||||||
|
投稿日時: 2008-09-14 11:16
BasicであればヘッダをBase64でデコードすればパスワードがとれますね。
| ||||||||
|
投稿日時: 2008-09-14 12:13
ありがとうございます。
Digest認証の方はどうでしょうか…? よろしくお願いします。 | ||||||||
|
投稿日時: 2008-09-14 23:20
Digeest認証ではリクエストヘッダにはハッシュ化されたパスワードしか含まれていないので復元はできませんね。
Basic認証で、Base64で簡単に復元できた弱点を解消したものが Digest 認証とも言えます。 アプリケーション的にはたぶんむりです。Tomcat 側にハックを施すしかないと思います。 | ||||||||
|
投稿日時: 2008-09-14 23:29
ApacheもTomcatも詳しくないのでどちらで認証が実行されるのか分かりませんが(多分Apache側?)…
インギさんの仰るように、DIGEST認証ではリクエスト内容からパスワードを復元することはできません。 よってパスワードを取得するには、サーバ側で認証済みユーザのパスワードを保持している必要があります。 しかし、通常DIGEST認証用にはパスワードのハッシュしか保持していないことが多いと思いますので、そこをどうにかする必要があります。 ※シングルサインオン先が同じ仕組みのパスワードハッシュだけでいいなら別ですが。 |
1