- - PR -
Proxy自作について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-05 14:40
お世話になります。
ASP型の認証サーバがあります。 この認証サーバを利用したいサービスWebサイトがちらほらあるんですが いまいまは、認証サーバとの接続部分をサービスWebサイト毎に ゴリゴリと作りこむ必要があります。 ちょっといけてないので、エージェントモジュール?みたいなのを作って パッケージ化して提案したいと思っています。 @サービスWebサイトのプログラムを修正したくない。 AサービスWebサイトに何らかのプログラムをインストールする。 もしくは、新規のサーバに何らかのプログラムを入れる。 BサービスWebサイトへのURLは変更したくない。 サービスWebサイトへの全てのアクセスをリバースプロキシー等を介して 実現すればいいのかと思うのですが、具体的に何をどのようにしようか 迷ってしまいました。 Apacheのプロキシー機能を使えばできるような事もわかりますが プロキシー機能を使いつつ、認証サーバに接続するような事(自作が必要)ができれば それはそれでいいのですが、どうなのでしょうか。 Proxy自作でも良いのかもしれないけど、それも含めてご意見下さい。 | ||||||||
|
投稿日時: 2007-09-13 22:36
お世話になります。
本件ですが、サービスWebサイトの前にリバースプロキシーを構築して 実現したいと思っています。 あるURLはApacheのmod_proxy機能を利用してサービスに流し、 あるURLには、Apache上のCGIを起動して認証サーバと接続したいと思います。 具体的には、例えば http://service.jp/portal/ →認証は必要ないので、mod_proxyを利用して http://proxy/portal/ http://service.jp/mail/ →認証が必要なので、CGIをキック(mod_proxyでリダイレクト) http://proxy/cgi-bin/start.cgi CGIでは、当初アクセスされたURLを保存しておき、認証サーバの 認証処理が終わった時点で保存したURLをGET(POST)しようとしています。 結局、CGIは開発しなければならないので、性能面とかを考えるとかなり迷っています。 もうしばらく検討してみますが、もし、他にもよい方法がありましたら ご教示願います。(考え方がせまくなってきてしまいました) よろしくおねがいします。 | ||||||||
|
投稿日時: 2007-09-14 14:37
実装方法の要件は分かるのですが、
実現させたいことの要件がよく見えません。 認証機構を個別のアプリケーション毎に実装する手間を省くこと。が要件ですか? シングルサインオン(1回のログインで複数のサービスに入れるようにする)の実現。 とかではなく? あと、例にある service.jp はサービスWebサイトのサーバ自身を、 proxy は、リバースプロキシのサーバ自身を、それぞれ意味していますか? service.jp で mod_proxy を動かすということですか? | ||||||||
|
投稿日時: 2007-09-14 16:07
ご返信ありがとうございます。
> 認証機構を個別のアプリケーション毎に実装する手間を省くこと。が要件ですか? はい、ご認識の通りです。 > シングルサインオン(1回のログインで複数のサービスに入れるようにする)の実現。 > とかではなく? シングルサインオンの必要はありません。 アプリケーション毎に認証セッションを維持したいと思っています。 > あと、例にある service.jp はサービスWebサイトのサーバ自身を、 > proxy は、リバースプロキシのサーバ自身を、それぞれ意味していますか? > service.jp で mod_proxy を動かすということですか? 前者のご認識の通りです。 service.jpは既存のWebアプリケーションで認証機能はありませんので service.jpを修正せず、かつURLを変更せずに認証機能が組み込めればと思っています。 mod_proxyを動かすのは、proxyです。 ちなみに、proxyはこれから新たに構築できるので、CGIを開発したり 何でもできるサーバーです。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-09-14 16:43
なるほど。
proxyにmod_proxyを乗せてリバースプロキシとして使用するのであれば、 ユーザが最初にアクセスする先はproxyですよね? その時点でユーザが認識するURLはservice.jpからproxyに変わってしまいます。 ユーザが http://proxy/dir1/〜 にアクセスすると proxy が http://service.jp/contents1/〜 のコンテンツを代理応答する ユーザが http://proxy/dir2/〜 にアクセスすると proxy が http://service.jp/contents2/〜 のコンテンツを代理応答する という動作になります。 このあたりの認識は合っていますか? | ||||||||
|
投稿日時: 2007-09-14 17:05
ご回答ありがとうございます。
私の書き方がおかしかったようで、すみません。 DNSの設定を変更して、service.jpに関連づけれているIPアドレスを portalのそれに変更する事を考えています。 前) service.jp 123.456.789.012 後) service.jp 987.654.321.098 # ←このアドレスはproxyのIP 例えば、 http://service.jp/dir1/ にアクセスすると、123.456.〜へ飛んでいたところ、変更後は 987.654〜に飛ぶのではないかと・・・。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-09-14 17:37
なるほど。 認証サーバがLDAP対応であれば、Basic認証と組み合わせれば なんとかなりそうな気もしなくもありません。 proxy (見せかけのservice.jp) 上で以下の設定をこなう。
自作CGIってどのサーバに置こうとしてますか? proxy (見せかけのservice.jp) に置く場合、 mod_proxy の意味がなくなってしまう様な気がしますが。 | ||||||||
|
投稿日時: 2007-09-14 17:48
ご回答ありがとうございます。
残念ながら、認証サーバはLDAP対応ではないです。 認証サーバとは独自の仕様でHTTPでやり取りする必要がありますので、 CGIの中で認証サーバ上のプログラムを実行(GET /cgi-bin/xxxxx.cgi) しなければなりません。 > 自作CGIってどのサーバに置こうとしてますか? > proxy (見せかけのservice.jp) に置く場合、 > mod_proxy の意味がなくなってしまう様な気がしますが。 proxy (見せかけのservice.jp) に置くことを検討しています。 http://service.jp/mail/ ⇒認証が必要なので、CGIをキック(mod_proxyでリダイレクト) http://proxy/cgi-bin/yyyyy.cgi 認証が成功したら、本物のservice.jpの/mail/index.htmlを とってくるような処理を組み込む予定です。 よろしくお願いします。 |