- - PR -
Proxy自作について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-14 20:00
質問ばかりでなんですが。。
@をAにリダイレクトするのにmod_proxyを使おうとしてます? | ||||||||
|
投稿日時: 2007-09-14 20:45
お世話になります。
ご丁寧にありがとうございます。 認証が必要かそうでないかはURLでチェックしようとしています。 認証が必要なURLは一つのサイトにあまりないと思うので 基本的には、 ユーザ ↓@ http://proxy(見せかけservice.jp)/portal/ ↓A↑B http://service.jp (本物)/portal/ のような形で(認証が不要な場合には) リバースプロキシー(mod_proxy)を使おうとしていますが 認証が必要な場合にも、クライアントにURLが変わった事を見せたくないので リバースプロキシー(mod_proxy)で飛ばしてしまえばいいと考えていました。 もっとよいやり方がありましたらご教示お願いします。 もう少し、調査や検証をすすめますが、今のやり方だとhttpd.confも 認証が必要なURLと不要なURLをそれぞれ定義する煩雑な書き方しかわかりません。 認証が必要なURLはXXXXXXXで、それ以外は本物へリバースプロキシーするような 書き方ができるとスマートなのですが・・・。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-09-14 21:10
なるほど。 どちらかというと、認証機能との連携にmod_proxyを使う。 と思っていたので、妙に根掘り葉掘り質問してました。 前者(認証不要ページ)は全く問題ないと思いますけど、 後者(要認証ページ)の実装って具体的イメージはあるんでしょうか。 要は、未認証なら認証ページに飛ばし、 認証済なら本来のservice.jpに飛ばす、ということですよね? 未認証・認証済のステータスに基づいて、mod_proxyでの 飛ばし先を動的に制御するということですか? 認証済なら、HTTP Location: ヘッダで本来のservice.jpに飛ばす というのもありですが、リバースプロキシを経由せずに、 本来のservice.jpにアクセスできる経路を設けてしまうと、 認証の意味がないのではないかと。
本来のservice.jpのURLがいくつあるのか分かりませんが、 ProxyPassを書く順序で、ある程度制御できると思いますよ。 デフォルトが非認証なのか、要認証なのかがはっきりしていれば。 | ||||||||
|
投稿日時: 2007-09-14 21:52
お世話になります。
そして、ご返信ありがとうございます。 > 要は、未認証なら認証ページに飛ばし、 > 認証済なら本来のservice.jpに飛ばす、ということですよね? > > 未認証・認証済のステータスに基づいて、mod_proxyでの > 飛ばし先を動的に制御するということですか? はい、動的に制御する事を考えています。 未認証・認証済のステータスは、ローカルのCGIで セッションIDと一意になるように管理する予定です。 認証済ならローカルのCGIからservice.jpにHTTP接続して、 当初アクセスしたURL(これもセッションIDと一意に管理)の コンテンツを取得して表示する予定です。 プロトタイプでは、Perl + CGI + Socket接続して 単純な静的ページの取得に成功しました。 しかしながら、service.jpがHTTP/1.1だったり、SSLだったり、 Cookieを使っていたり・・だと今のプロトタイプでは、たちまち動かなくなります。 CGIからクライアントを介さずにservice.jpにアクセスするには この部分はどうしても作りこみが必要なのかなと思っていますがいかがでしょうか。 ※開発せずに済むのがベターなのですが・・・。 PerlではLWP等を使って、もう少しコード量を減らせそうですが いかんせん、こじんまりしたブラウザーを開発するようなものなので どうやったらスマートにできるか悩みは尽きません。 ご指摘の通り、本来のservice.jpにアクセスできる経路を設けたくはないですものね。 > 本来のservice.jpのURLがいくつあるのか分かりませんが、 > ProxyPassを書く順序で、ある程度制御できると思いますよ。 > デフォルトが非認証なのか、要認証なのかがはっきりしていれば。 ありがとうございます。 こちらももうしばらく調査を進めます。 |