アプリケーショントラフィックの認証、承認、監査

Citrix ADCがクライアント認証にKerberosを実装する方法

重要

Kerberos/NTLM認証は、NetScaler 9.3 nCore リリース以降でのみサポートされており、トラフィック管理仮想サーバーの認証、承認、監査にのみ使用できます。

Citrix ADCは、Kerberos認証に関連するコンポーネントを次のように処理します。

キー配布センター (KDC)

Windows 2000 サーバーまたはそれ以降のバージョンでは、ドメインコントローラーと KDC は Windows サーバーの一部です。Windows Server が起動し、実行している場合は、ドメインコントローラと KDC が構成されていることを示します。KDC は、Active Directory サーバーでもあります。

すべての Kerberos の相互作用は、Windows Kerberos ドメインコントローラーで検証されます。

認証サービスとプロトコルのネゴシエーション

Citrix ADCアプライアンスは、認証、承認、監査トラフィック管理認証仮想サーバーでのKerberos認証をサポートします。Kerberos 認証が失敗した場合、Citrix ADC は NTLM 認証を使用します。

既定では、Windows 2000 Server 以降のバージョンの Windows Server では、認証、承認、および監査に Kerberos が使用されます。認証タイプとしてNEGOTIATEを使用して認証ポリシーを作成すると、Citrix ADCは認証、承認、および監査にKerberosプロトコルを使用しようとします。クライアントのブラウザがKerberosチケットを受信できない場合、Citrix ADCはNTLM認証を使用します。このプロセスは、ネゴシエーションと呼ばれます。

クライアントは、次のいずれかに該当する場合、Kerberos チケットの受信に失敗することがあります。

  • Kerberos はクライアントでサポートされていません。
  • Kerberos がクライアントで有効になっていません。
  • クライアントが KDC 以外のドメインに存在する。
  • KDC 上のアクセスディレクトリは、クライアントからアクセスできません。

Kerberos/NTLM認証の場合、Citrix ADCは、Citrix ADCアプライアンスにローカルに存在するデータを使用しません。

承認

トラフィック管理仮想サーバは、負荷分散仮想サーバまたはコンテンツスイッチング仮想サーバです。

監査

Citrix ADCアプライアンスは、次の監査ログによるKerberos認証の監査をサポートします。

  • トラフィック管理エンドユーザアクティビティの完全な監査証跡
  • SYSLOG と高パフォーマンス TCP ロギング
  • システム管理者の完全な監査証跡
  • すべてのシステムイベント
  • スクリプト可能なログ形式

サポートされる環境

Kerberos 認証では、Citrix ADC 上の特定の環境は必要ありません。クライアント(ブラウザ)が Kerberos 認証をサポートする必要があります。

高可用性

高可用性セットアップでは、アクティブなCitrix ADCのみがドメインに参加します。フェイルオーバーの場合、Citrix ADC lwagentデーモンはセカンダリCitrix ADCアプライアンスをドメインに参加させます。この機能に特定の設定は必要ありません。

Kerberos認証プロセス

次の図は、Citrix ADC環境におけるKerberos認証の一般的なプロセスを示しています。

図1:Citrix ADC でのKerberos認証プロセス

NetScaler でのKerberos認証

Kerberos 認証は、次の段階で行われます。

クライアントが KDC に対して自身を認証する

  1. Citrix ADCアプライアンスは、クライアントから要求を受信します。
  2. Citrix ADCアプライアンスのトラフィック管理(負荷分散またはコンテンツスイッチング)仮想サーバーは、クライアントにチャレンジを送信します。
  3. このチャレンジに対応するために、クライアントは Kerberos チケットを取得します。
    • クライアントは、KDC の認証サーバにチケット認可チケット (TGT) の要求を送信し、TGT を受信します。(図「Kerberos 認証プロセス」の 3、4 を参照してください)。
    • クライアントは TGT を KDC のチケット交付サーバーに送信し、Kerberos チケットを受け取ります。(図「Kerberos 認証プロセス」の 5、6 を参照してください)。

クライアントがライフタイムの期限が切れていないKerberosチケットをすでに持っている場合、上記の認証プロセスは不要です。さらに、SPNEGO をサポートする Web サービス、.NET、または J2EE などのクライアントは、ターゲットサーバーの Kerberos チケットを取得し、SPNEGO トークンを作成し、HTTP 要求を送信するときに HTTP ヘッダーにトークンを挿入します。クライアント認証プロセスは行われません。

クライアントがサービスを要求します。

  1. クライアントは、SPNEGO トークンと HTTP 要求を含む Kerberos チケットを Citrix ADC 上のトラフィック管理仮想サーバーに送信します。SPNEGO トークンに必要な GSSAPI データがあります。
  2. Citrix ADCアプライアンスは、クライアントとCitrix ADCの間にセキュリティコンテキストを確立します。Citrix ADCがKerberosチケットで提供されたデータを受け付けることができない場合、クライアントは別のチケットを取得するように求められます。このサイクルは、GSSAPI データが受け入れられ、セキュリティコンテキストが確立されるまで繰り返されます。Citrix ADC上のトラフィック管理仮想サーバーは、クライアントと物理サーバー間のHTTPプロキシとして機能します。

Citrix ADCアプライアンスが認証を完了します。

  1. セキュリティコンテキストが完了すると、トラフィック管理仮想サーバーは SPNEGO トークンを検証します。
  2. 有効な SPNEGO トークンから、仮想サーバーはユーザー ID と GSS 資格情報を抽出し、認証デーモンに渡します。
  3. 認証が成功すると、Kerberos 認証が完了します。
Citrix ADCがクライアント認証にKerberosを実装する方法