• ベストアンサー

Webサーバによるユーザ認証の必要性

JavaでWebアプリを作るとき、Webサーバーによるユーザ認証が、なぜ必要なのかわかりません。Appサーバ側でログイン認証のロジックを直接書くのとでは、どのような違いがあり、どのような利点がうまれるのでしょうか?素人な質問ですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.2

Webサーバのユーザ認証を、Basic認証を例にしてみます。 Webサーバに以下のようなファイル群を構築したとします。 ・静的なHTMLファイル ・画像ファイル ・PHPスクリプトによるWebアプリ ・CGIによるWebアプリ ・Appサーバと連携して動作するJava Webアプリ Appサーバで独自にログイン認証を構築した場合は、最後のJavaによるWebアプリの範囲でしか認証できません。 これがWebサーバのBasic認証の場合は、上記のすべてを統一して認証することが出来ます。 Appサーバ側で、ログイン認証の仕組みを作る場合には、自作する手間は掛かりますが、自由な認証ロジックを作ることができます。 一方、Webサーバの認証の仕組みで十分であれば、それに乗っかることで、認証ロジックを自作する必要はなくなります。 また1つのWebサーバから、複数のAPサーバと連携させるような環境などでは、 Webサーバ側で認証することで、シングルサインオンを実現できたりします。 (もちろん、シングルサインオンを実現する方法は、これだけではないです) request→Webサーバ→APサーバ1(システムA)            →APサーバ2(システムB)

courks
質問者

お礼

なるほど、大変よくわかる説明でした。 ありがとうございました。 自分が構築してきたJavaのWebアプリは、企業のイントラネット内で使われ、APサーバはJ2EEサーバ1つのみ、ワークロード管理の必要もない、小規模なものばかりでした。確かに一回のログイン認証で複数のAPサーバのサービスを提供できるようにする場合は必要ですね。 本当にすっきりしました。 ありがとうございました。

その他の回答 (1)

  • masusun
  • ベストアンサー率15% (44/285)
回答No.1

悪意とスキルのある人が、 自宅のPCに貴方のおっしゃるAppサーバと同等の機能を作れば 自宅からwebサーバを利用できます。 同等の機能ならまだ良いですが、手を加えれば 企業秘密の入ったDBの内容を盗むことも可能ですね。 つまり外部からWebサーバへのアクセスは貴方のおっしゃる Appサーバのログイン認証機能を必ずしも経由する必要はない訳です。 上記からなぜ認証が必要かは理解できますね?

courks
質問者

お礼

Webサーバから見て、外部のAppサーバとどうやって連携をさせるのかはわからないですが、フロントにいるWebサーバで弾くことがセキュリティ上必要だということでいいのでしょうか。