ADC

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

重要

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

NetScalerは、Kerberos認証に関連するコンポーネントを以下の方法で処理します。

キー・ディストリビューション・センター (KDC)

Windows 2000 サーバ以降のバージョンでは、ドメインコントローラと KDC は Windows サーバの一部です。Windows Server が稼働している場合は、ドメインコントローラと KDC が設定されていることを示します。KDC はActive Directory サーバでもあります。

すべての Kerberos インタラクションは Windows Kerberos ドメインコントローラーで検証されます。

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

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

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

次のいずれかの場合、クライアントは Kerberos チケットを受信できない可能性があります。

  • Kerberos はクライアントではサポートされていません。
  • Kerberos はクライアントで有効になっていません。
  • クライアントは KDC のドメインとは別のドメインにあります。
  • クライアントは KDC のアクセスディレクトリにアクセスできません。

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

承認

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

監査

NetScalerアプライアンスは、以下の監査ログによるKerberos認証の監査をサポートしています。

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

サポート環境

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

高可用性

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

ケルベロス認証プロセス

次の図は、NetScaler環境でのKerberos認証の一般的なプロセスを示しています。

図1:NetScaler でのケルベロス認証プロセス

NetScaler でのケルベロス認証

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

クライアントは KDC に対して自分自身を認証します

  1. NetScalerアプライアンスはクライアントから要求を受け取ります。
  2. NetScalerアプライアンス上のトラフィック管理(負荷分散またはコンテンツスイッチング)仮想サーバーは、クライアントにチャレンジを送信します。
  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チケットをNetScaler上のトラフィック管理仮想サーバーに送信します。SPNEGO トークンには必要な GSSAPI データが含まれています。
  2. NetScalerアプライアンスは、クライアントとNetScaler間のセキュリティコンテキストを確立します。NetScalerがKerberosチケットで提供されたデータを受け入れられない場合、クライアントは別のチケットを取得するよう求められます。このサイクルは、GSSAPI データが許容範囲内になり、セキュリティコンテキストが確立されるまで繰り返されます。NetScaler上のトラフィック管理仮想サーバーは、クライアントと物理サーバー間のHTTPプロキシとして機能します。

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

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