質問: ユーザーが1つのIDとパスワードで認証を通したあと、直接DBアクセスができない別立てのWEBサーバー(複数のドメイン)を行き来できるサイトを構築しようとしています。 セキュアなサイトとするための一般的なやり方を知りたい、あるいは、うまいやり方を知りたいと考えています。 プログラム開発言語は、PHPかJAVAかで行おうとしていますが、ライブラリー的に利用できるものでも、サンプルや考え方のみでも構いませんので、教えてください。 参考になるWEBページや本でも構いません。 まずは、プログラムを組むというより、概念的な話のレベルでと考えています。 今考えているのは、サイトの規模は50万人程度の会員をかかえる予定です。あまり複雑怪奇なやり方でなく、同じ認証システムを使って、のちのちにサービス追加できる拡張性の高いシステムにしたいと考えています。(「はてな」のように・・・) よろしくお願いします。
回答: 一般的かどうかは分かりませんが、自分ならこうするという方法です。 1.ログイン情報は言語で用意されているセッションは使わない。独自で実装。 Cookie に一意なキーを記録し、DBにも同じキーを記録する。その一致をもって認証済みを確認する。 Cookie のドメインを .hatena.ne.jp のようにホスト名を指定しない形にすると q.hatena.ne.jp d.hatena.ne.jp r.hatena.ne.jp 等のようにサービスごとにドメインが分かれても共通で使える。 2.各ウェブサーバーと別に認証用のサーバーを用意し、認証情報の確認はすべてそちらに投げる事にする。 認証用のサーバーはDBに直接アクセス可能とする。 ウェブサーバー >-< 認証サーバー間の通信は SOAP,XMLRPC 等を使用すると楽。 という感じです。