Citrix ADC

ユースケース:アクセス制御と認証

セキュリティの高いゾーンでは、クライアントがリソースにアクセスする前に、ユーザーを外部から認証する必要があります。Citrix ADCアプライアンスでは、HTTPコールアウトを使用して、指定された資格情報を評価してユーザーを外部認証できます。この例では、クライアントはリクエストの HTTP ヘッダーを介してユーザー名とパスワードを送信することを前提としています。ただし、URL または HTTP 本文から同じ情報を取得できます。

この設定を実装するには、次のタスクを実行する必要があります。

  1. Citrix ADCアプライアンスでレスポンダー機能を有効にします。
  2. アプライアンスで HTTP コールアウトを作成し、外部サーバーの詳細およびその他の必須パラメータを使用して設定します。
  3. レスポンダーポリシーを設定してレスポンダーを分析し、ポリシーをグローバルにバインドします。
  4. リモートサーバ上にコールアウトエージェントを作成します。

レスポンダーの有効化

応答側機能は、Citrix ADCアプライアンスで使用する前に有効にする必要があります。

構成ユーティリティを使用してレスポンダーを有効にするには

  1. レスポンダーライセンスがインストールされていることを確認します。
  2. 構成ユーティリティで、AppExpert を展開し、[レスポンダー] を右クリックし、[レスポンダー機能を有効にする] をクリックします。

Citrix ADCアプライアンスでのHTTPコールアウトの作成

次の表に示すパラメータ設定を使用して、HTTP コールアウトである HTTP-Callout-3 を作成します。HTTP コールアウトの作成の詳細については、「HTTP コールアウトの設定」を参照してください。

表1. HTTP コールアウト 3 のパラメータと値

パラメーター 名前
名前 Policy-Responder-3  

パラメーター

名前

HTTP-Callout-3

コールアウト要求を受信するサーバー:

IPアドレス

10.103.9.95

ポート

80

サーバーに送信する要求:

方法

GET

ホスト式

10.102.3.95

URL ステム式

“/cgi-bin/authenticate.pl”

ヘッダー:

名前

Request

値式

コールアウト要求

パラメータ:

名前

ユーザー名

値式

HTTP.REQ.HEADER(“Username”).VALUE(0)

名前

パスワード

値式

HTTP.REQ.HEADER(“Password”).VALUE(0)

サーバの応答:

戻り値の型

TEXT

レスポンスからデータを抽出する式

HTTP.RES.BODY (100)

レスポンダーポリシーを作成してレスポンダーを分析する

コールアウトサーバーからの応答をチェックし、送信元 IP アドレスがブラックリストに登録されている場合は接続をリセットするレスポンダーポリシー Policy-Responder-3 を作成します。次の表に示すパラメータ設定を使用してポリシーを作成します。[ Policies] サブノードでレスポンダーポリシーを作成し、 レスポンダーポリシーマネージャーを使用してグローバルにバインドできますが、このデモでは、 レスポンダーポリシーマネージャーを使用してレスポンダーポリシーを作成し、ポリシーをグローバルにバインドします。

表 2. Parameters and Values for Policy-Responder-3

パラメーター
名前 Policy-Responder-3
操作(アクション) RESET
未定義の結果-アクション -Global undefined-result action-
“HTTP.REQ.HEADER(\“Request\”).EQ(\“Callout Request\”).NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS(\“Authentication Failed\”)”

構成ユーティリティを使用してレスポンダーポリシーを作成し、グローバルにバインドするには

  1. [AppExpert] > [応答者] に移動します。
  2. 詳細ペインの [ポリシーマネージャー] で、[レスポンダーポリシーマネージャー] をクリックします。
  3. [レスポンダーポリシーの管理] ダイアログボックスで、[グローバルに上書き] をクリックします。
  4. [ポリシーの挿入] をクリックし、[ポリシー名] 列の [新しいポリシー] をクリックします。
  5. [レスポンダーポリシーの作成] ダイアログボックスで、次の操作を行います。

    1. [名前] に「ポリシーレスポンダー-3」と入力します。
    2. 「アクション」で、「 リセット」を選択します。
    3. 「未定義結果アクション」で、「グローバル未定義結果アクション」を選択します。
    4. 「 式」 テキスト・ボックスに、次のように入力します。
    "HTTP.REQ.HEADER("Request").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS("Authentication Failed")"
    
    1. [作成] をクリックし、[閉じる] をクリックします。
  6. [変更の適用] をクリックし、[閉じる] をクリックします。

リモートサーバでの HTTP コールアウトエージェントの作成

ここで、リモートコールアウトサーバーに HTTP コールアウトエージェントを作成する必要があります。HTTPコールアウトエージェントは、Citrix ADCアプライアンスからコールアウト要求を受信し、適切に応答します。コールアウトエージェントは、展開ごとに異なるスクリプトで、データベースの種類やサポートされるスクリプト言語など、サーバーの仕様を念頭に置いて記述する必要があります。

次に、指定されたユーザー名とパスワードが有効かどうかを検証するコールアウトエージェント擬似コードの例を示します。エージェントは、任意のプログラミング言語で実装できます。擬似コードは、コールアウトエージェントを開発するためのガイドラインとしてのみ使用します。プログラムに追加の機能を組み込むことができます。

擬似コードを使用して指定されたユーザー名とパスワードを確認するには

  1. 要求で指定されたユーザー名とパスワードを受け入れ、適切にフォーマットします。
  2. すべての有効なユーザー名とパスワードを含むデータベースに接続します。
  3. 指定された認証情報をデータベースと照合して確認します。
  4. HTTP コールアウトで要求される応答をフォーマットします。
  5. Citrix ADCアプライアンスにレスポンスを送信します。

ユースケース:アクセス制御と認証