Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 5.09 KB

policy-agent.md

File metadata and controls

58 lines (38 loc) · 5.09 KB

※[TODO 作成中]

ポリシーエージェント

ポリシーエージェントの概要

ポリシーエージェント(Policy Agent)は、OpenAMと連携して、後述する次の方式のSSOを実現するソフトウェアです。

  • エージェント方式 (4.1 エージェント方式 を参照)
  • リバースプロキシー方式 (4.2 リバースプロキシー方式 を参照)
  • 代理認証方式 (4.3 代理認証方式 を参照)

基本的な役割は、ブラウザなどのクライアントからのWebサイトへのリクエストをインターセプトして、OpenAMのポリシーに基づいたアクセス許可・拒否を実施することと、未認証であればログイン(認証)をさせるようにOpenAMにリダイレクトすることです。

エージェント方式の場合、ポリシーエージェントはWebサイトを公開しているWebサーバーやJavaコンテナにインストールし、クライアントがWebサイト上の保護されたリソースへのアクセスしようとした際に、WebサーバーやJavaコンテナによって呼び出されるように構成します。

リバースプロキシー方式や代理認証方式の場合、ポリシーエージェントはWebサイトを公開しているWebサーバーやJavaコンテナに直接インストールせずに、Webサイトの前段にあるリバースプロキシーサーバーにインストールします。クライアントがWebサイト上の保護されたリソースへのアクセスしようとした際に、リバースプロキシーサーバーによって呼び出されるように構成します。

ポリシーエージェントは、インストールする対象となるサーバーが何であるかで、以下の2つに大別できます。

  • Webエージェント
  • Java EEエージェント

Webポリシーエージェントは、ApacheなどのWebサーバーにインストールされたライブラリで、Webサーバーソフトウェアの種類によって実装が異なります。OpenAM 13.0.0と同時期にリリースされたWebポリシーエージェント(バージョン4.0.0)には以下があります。

  • Apache 2.2 Policy Agent
  • Apache 2.4 Policy Agent
  • Microsoft IIS 6 Policy Agent
  • Microsoft IIS 7 Policy Agent

※バージョン3.xで提供されていたOracle iPlanet/Sun Web Server Policy Agentは、バージョン4.0.0では提供されていません。

Java EEエージェントは、TomcatなどのJavaコンテナにインストールされたサーブレットフィルターで、Javaコンテナソフトウェアの種類によって実装が異なります。OpenAM 13.0.0と同時期にリリースされたJava EEポリシーエージェント(バージョン3.5.0)には以下があります。

  • Apache Tomcat 6, 7, 8 Policy Agent
  • IBM WebSphere Application Server 8, 8.5 Policy Agent
  • JBoss Enterprise Application Platform 6 Policy Agent
  • JBoss Application Server 7 Policy Agent
  • Jetty 8 (at least 8.1.13) Policy Agent
  • Oracle WebLogic Server 11g, 12c Policy Agent

OpenAM 13.0.0の管理コンソールなどでは「J2EEエージェント」と表記されています。

ポリシーエージェントの動作原理

ユーザーが未認証の場合の、ポリシーエージェントの動作原理を説明すると以下の図のようになります。なお、この図は考えられる全てのケースを説明するものではなく、本質的な動作シーケンスのみを示すために簡略化されています。

図. ポリシーエージェントの動作原理

  1. クライアント(エンドユーザーのブラウザ)が、ポリシーエージェントによって保護されたWebサイトのリソースにアクセスします。
  2. ポリシーエージェントは、リクエストをインターセプトして、OpenAMのログインページにクライアントをリダイレクトします。
  3. ユーザーはOpenAMにクレデンシャルを提供し、ログインします(具体的に言うと、例えば、IDとパスワードを入力して、ログインボタンをクリックする)。
  4. OpenAMは提供されたクレデンシャルを検証し、ログインを許可または拒否します。さらに、OpenAMはブラウザのクッキーにセッショントークンを設定し、ユーザーが最初にアクセスしようとしたページにブラウザをリダイレクトします。リソースのアクセスに対して有効なセッショントークンがあれば、再度ログインを要求されることはありません。
  5. ポリシーエージェントは、再度リクエストをインターセプトして、施行するポリシー決定を取得するにOpenAMへリクエストを送信します。
  6. OpenAMは、登録されているポリシーの定義を元に、ポリシー決定をポリシーエージェントに返します。
  7. ポリシーエージェントはポリシー決定に従い、アクセスを許可または拒否します。
  8. Webサーバーは、要求されたリソースをクライアントに返します。