- PR -

Proxy自作について

投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-09-05 14:40
お世話になります。

ASP型の認証サーバがあります。

この認証サーバを利用したいサービスWebサイトがちらほらあるんですが
いまいまは、認証サーバとの接続部分をサービスWebサイト毎に
ゴリゴリと作りこむ必要があります。
ちょっといけてないので、エージェントモジュール?みたいなのを作って
パッケージ化して提案したいと思っています。

@サービスWebサイトのプログラムを修正したくない。
AサービスWebサイトに何らかのプログラムをインストールする。
 もしくは、新規のサーバに何らかのプログラムを入れる。
BサービスWebサイトへのURLは変更したくない。

サービスWebサイトへの全てのアクセスをリバースプロキシー等を介して
実現すればいいのかと思うのですが、具体的に何をどのようにしようか
迷ってしまいました。
Apacheのプロキシー機能を使えばできるような事もわかりますが
プロキシー機能を使いつつ、認証サーバに接続するような事(自作が必要)ができれば
それはそれでいいのですが、どうなのでしょうか。
Proxy自作でも良いのかもしれないけど、それも含めてご意見下さい。
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 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は開発しなければならないので、性能面とかを考えるとかなり迷っています。

もうしばらく検討してみますが、もし、他にもよい方法がありましたら
ご教示願います。(考え方がせまくなってきてしまいました)

よろしくおねがいします。
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-09-14 14:37
実装方法の要件は分かるのですが、
実現させたいことの要件がよく見えません。

認証機構を個別のアプリケーション毎に実装する手間を省くこと。が要件ですか?
シングルサインオン(1回のログインで複数のサービスに入れるようにする)の実現。
とかではなく?

あと、例にある service.jp はサービスWebサイトのサーバ自身を、
proxy は、リバースプロキシのサーバ自身を、それぞれ意味していますか?
service.jp で mod_proxy を動かすということですか?
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 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を開発したり
何でもできるサーバーです。
よろしくお願いします。
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-09-14 16:43
引用:

> 認証機構を個別のアプリケーション毎に実装する手間を省くこと。が要件ですか?
はい、ご認識の通りです。

> シングルサインオン(1回のログインで複数のサービスに入れるようにする)の実現。
> とかではなく?
シングルサインオンの必要はありません。
アプリケーション毎に認証セッションを維持したいと思っています。


なるほど。

引用:

> あと、例にある service.jp はサービスWebサイトのサーバ自身を、
> proxy は、リバースプロキシのサーバ自身を、それぞれ意味していますか?
> service.jp で mod_proxy を動かすということですか?
前者のご認識の通りです。
service.jpは既存のWebアプリケーションで認証機能はありませんので
service.jpを修正せず、かつURLを変更せずに認証機能が組み込めればと思っています。
mod_proxyを動かすのは、proxyです。


proxyにmod_proxyを乗せてリバースプロキシとして使用するのであれば、
ユーザが最初にアクセスする先はproxyですよね?
その時点でユーザが認識するURLはservice.jpからproxyに変わってしまいます。

 ユーザが http://proxy/dir1/〜 にアクセスすると proxy が
 http://service.jp/contents1/〜 のコンテンツを代理応答する

 ユーザが http://proxy/dir2/〜 にアクセスすると proxy が
 http://service.jp/contents2/〜 のコンテンツを代理応答する

という動作になります。

このあたりの認識は合っていますか?
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 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〜に飛ぶのではないかと・・・。

よろしくお願いします。
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-09-14 17:37
引用:

DNSの設定を変更して、service.jpに関連づけれているIPアドレスを
portalのそれに変更する事を考えています。


なるほど。

認証サーバがLDAP対応であれば、Basic認証と組み合わせれば
なんとかなりそうな気もしなくもありません。
proxy (見せかけのservice.jp) 上で以下の設定をこなう。
コード:
<Location /dir1>
  Basic認証のディレクティブ
  LDAPのディレクティブ
  ProxyPass http://original-service.jp/contents1/
</Location>



自作CGIってどのサーバに置こうとしてますか?
proxy (見せかけのservice.jp) に置く場合、
mod_proxy の意味がなくなってしまう様な気がしますが。
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 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を
 とってくるような処理を組み込む予定です。

よろしくお願いします。

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