flat7th

memo/20100826

created 2010-08-26 modified 2011-01-25 

複数の社内Webシステムに対するシングルサインオンをどう実現するか。
そのために、ブラウザとWebサーバとの間にはプロクシを必ず入れる。

最近のWebブラウザは、セキュリティのためにクロスサイトでパスワードを転送なんてしてくれないから、複数のWebサイトでシングルサインオンを実現するには、プロクシがリクエストの書き換えとレスポンスの書き換えを行い、あたかもある1つのサイトの別フォルダであるように、ブラウザに見せる必要がある。
それでその共通フォルダ以下にレルムを設定することで、ブラウザは、BASIC認証の認証情報を、別システムへのアクセスでも引き続きよこしてくれる。

で、さらにWebサーバの多重化。ねらいは可用性向上と、応答性向上。

プロクシ装置は実際のWebサーバにアクセスするために、DNS解決を行う。DNSサーバは、じつは稼動監視も行っており、クラスタ化されたWebサーバのうち、生きているサーバのアドレスを返す。

ここまでが、前提環境。


これだけだと生きているほうを返すだけだが、「なんらかの」負荷値により負荷の低いほうへアクセスを流したい、とする。

この構成で、どんな負荷分散方式がよいか。

いくつか候補を挙げた中で、私が「この構成では絶対にない」と考えたのが、ソースIPアドレスによる分散。ソースIPを知っているのはプロクシであり、プロクシからDNSサーバに、判断材料となるソースIPを伝える手段が、ないから。


どんな仕事でも職業上の「カン」ってあると思うんですが、それがずれると苦労するんですよね。この「ずれ」、私が一番苦手とするパターンです。前の会社で社長と喧嘩して辞めたのもこのパターンだし。