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認証プロセス
Kerberos 認証は、次の段階で行われます。
クライアントが KDC に対して自身を認証する
- Citrix ADCアプライアンスは、クライアントから要求を受信します。
- Citrix ADCアプライアンスのトラフィック管理(負荷分散またはコンテンツスイッチング)仮想サーバーは、クライアントにチャレンジを送信します。
- このチャレンジに対応するために、クライアントは Kerberos チケットを取得します。
- クライアントは、KDC の認証サーバにチケット認可チケット (TGT) の要求を送信し、TGT を受信します。(図「Kerberos 認証プロセス」の 3、4 を参照してください)。
- クライアントは TGT を KDC のチケット交付サーバーに送信し、Kerberos チケットを受け取ります。(図「Kerberos 認証プロセス」の 5、6 を参照してください)。
注
クライアントがライフタイムの期限が切れていないKerberosチケットをすでに持っている場合、上記の認証プロセスは不要です。さらに、SPNEGO をサポートする Web サービス、.NET、または J2EE などのクライアントは、ターゲットサーバーの Kerberos チケットを取得し、SPNEGO トークンを作成し、HTTP 要求を送信するときに HTTP ヘッダーにトークンを挿入します。クライアント認証プロセスは行われません。
クライアントがサービスを要求します。
- クライアントは、SPNEGO トークンと HTTP 要求を含む Kerberos チケットを Citrix ADC 上のトラフィック管理仮想サーバーに送信します。SPNEGO トークンに必要な GSSAPI データがあります。
- Citrix ADCアプライアンスは、クライアントとCitrix ADCの間にセキュリティコンテキストを確立します。Citrix ADCがKerberosチケットで提供されたデータを受け付けることができない場合、クライアントは別のチケットを取得するように求められます。このサイクルは、GSSAPI データが受け入れられ、セキュリティコンテキストが確立されるまで繰り返されます。Citrix ADC上のトラフィック管理仮想サーバーは、クライアントと物理サーバー間のHTTPプロキシとして機能します。
Citrix ADCアプライアンスが認証を完了します。
- セキュリティコンテキストが完了すると、トラフィック管理仮想サーバーは SPNEGO トークンを検証します。
- 有効な SPNEGO トークンから、仮想サーバーはユーザー ID と GSS 資格情報を抽出し、認証デーモンに渡します。
- 認証が成功すると、Kerberos 認証が完了します。