ADC

NetScalerがクライアント認証用に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 環境におけるケルベロス認証の一般的なプロセスを示しています。

図1. Citrix ADC でのケルベロス認証プロセス

NetScaler でのケルベロス認証

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 認証が完了します。
NetScalerがクライアント認証用にKerberosを実装する方法