Citrix ADC

クライアント証明書認証

オンラインバンキング Web サイトや従業員の個人情報を含む Web サイトなど、機密性の高いコンテンツを含む Web サイトでは、認証にクライアント証明書が必要になることがあります。クライアント側の証明書属性に基づいてユーザを認証するように認証、認可、および監査を設定するには、まずトラフィック管理仮想サーバでクライアント認証を有効にし、ルート証明書を認証仮想サーバにバインドします。次に、2 つのオプションのいずれかを実装します。認証仮想サーバーのデフォルトの認証タイプをCERTとして構成するか、クライアント証明書に基づいてユーザーを認証するためにCitrix ADCが実行する必要がある処理を定義する証明書アクションを作成できます。どちらの場合も、認証サーバが CRL をサポートしている必要があります。SubjectCN フィールドまたはクライアント証明書内の別の指定されたフィールドからユーザー名を抽出するように ADC を構成します。

ユーザーが認証ポリシーが構成されていない認証仮想サーバーにログオンしようとすると、グローバルカスケードが構成されていない場合、証明書の指定されたフィールドからユーザー名情報が抽出されます。必須フィールドが抽出されると、認証は成功します。ユーザーが SSL ハンドシェイク中に有効な証明書を提供しない場合、またはユーザー名の抽出が失敗した場合、認証は失敗します。クライアント証明書を検証した後、ADC はユーザーにログオンページを表示します。

次の手順では、機能する認証、承認、および監査の構成が既に作成されていることを前提としています。したがって、クライアント証明書を使用して認証を有効にする方法のみを説明します。また、これらの手順は、ルート証明書とクライアント証明書を取得し、ADC の /nsconfig/ssl ディレクトリに配置していることを前提としています。

クライアント証明書認証の構成

コマンドラインインターフェイスを使用して認証、承認、および監査クライアント証明書パラメータを構成するには

コマンドプロンプトで次のコマンドを記載されている順序で入力し、証明書を構成し、構成を確認します。

add ssl certKey <certkeyName> -cert <certFile> -key <keyFile> -password -inform <inform> -expiryMonitor <expiryMonitor> -notificationPeriod <notificationPeriod>

bind ssl certKey <certkeyName> -vServer <certkeyName> -CA -crlCheck Mandatory

show ssl certKey [<certkeyName>]

set aaa parameter -defaultAuthType CERT

show aaa parameter

set aaa certParams -userNameField "Subject:CN"

show aaa certParams

構成ユーティリティを使用して認証、承認、および監査クライアント証明書パラメータを構成するには

  1. [セキュリティ]>[AAA-アプリケーショントラフィック]>[仮想サーバ] に移動します。
  2. 詳細ウィンドウで、クライアント証明書の認証を処理するように構成する仮想サーバーを選択し、[編集] をクリックします。
  3. [構成] ページの [証明書] で、右矢印 (>) をクリックして、[CA Cert Key] インストールダイアログを開きます。
  4. [CA証明書キー] ダイアログボックスで、[挿入] をクリックします。
  5. [CA証明書キー-SSL証明書] ダイアログボックスで、[インストール] をクリックします。
  6. [Install Certificate] ダイアログボックスで、次のパラメータを設定します。これらのパラメータは、次に示すように CLI パラメータ名に対応します。
    • 証明書とキーのペア名*—certkeyName
    • 証明書ファイル名:certFile
    • キー・ファイル名:keyFile
    • 証明書形式:inform
    • パスワード-password
    • 証明書バンドル:bundle
    • 有効期限が切れたときに通知する-notificationPeriod
    • 通知期間-notificationPeriod
  7. [インストール]をクリックし、[閉じる]をクリックします。
  8. [CA 証明書キー] ダイアログボックスの [証明書] リストで、ルート証明書を選択します。
  9. [保存] をクリックします。
  10. [Back] をクリックして、メインの設定画面に戻ります。
  11. [セキュリティ] > [AAA-アプリケーショントラフィック] > [ポリシー] > [認証] > [CERT] に移動します。
  12. 詳細ウィンドウで、クライアント証明書の認証を処理するように構成するポリシーを選択し、[編集] をクリックします。
  13. [認証 CERT ポリシーの構成] ダイアログボックスの [サーバー] ドロップダウンリストで、クライアント証明書の認証を処理するように構成した仮想サーバーを選択します。
  14. [OK] をクリックします。ステータスバーに、設定が正常に完了したことを示すメッセージが表示されます。

高度なポリシーを使用したクライアント証明書認証

高度なポリシーを使用して、Citrix ADCでクライアント証明書認証を設定する手順は次のとおりです。

  1. Security > AAA - Application Traffic > Virtual Serversに移動します。
  2. 詳細ウィンドウで、クライアント証明書の認証を処理するように構成する仮想サーバーを選択し、[編集] をクリックします。

    注:

    仮想サーバーの有効な CA 証明書とサーバー証明書をインポートした場合は、 手順 3 ~ 10をスキップできます。

  3. [構成] ページの [証明書] で、[>] をクリックして [CA Cert Key インストール] ダイアログボックスを開きます。
  4. [CA証明書キー]ダイアログボックスで、[挿入]をクリックします。
  5. [CA証明書キー-SSL証明書]ダイアログボックスで、[インストール]をクリックします。
  6. [Install Certificate] ダイアログボックスで、次のパラメータを設定します。これらのパラメータは、次に示すように CLI パラメータ名に対応します。

    • 証明書とキーのペア名-certkeyName
    • 証明書ファイル名:certFile
    • キー・ファイル名:keyFile
    • 証明書形式:inform
    • パスワード-password
    • 証明書バンドル:bundle
    • 有効期限が切れたときに通知する-notificationPeriod
    • 通知期間-notificationPeriod
  7. [インストール] をクリックし、[閉じる] をクリックします。
  8. [CA Cert Key] ダイアログボックスの [証明書] リストから、ルート証明書を選択します。
  9. [保存] をクリックします。
  10. [Back] をクリックして、メインの設定画面に戻ります。
  11. Security > AAA - Application Traffic > Policies > Authentication > Advanced Policiesに移動してPolicyを選択します。
  12. 詳細ウィンドウで、次のいずれかの操作を行います。

    • 新しいポリシーを作成するには、[Add] をクリックします。
    • 既存のポリシーを変更するには、ポリシーを選択し、[Edit] をクリックします。
  13. [認証ポリシーの作成] または [認証ポリシーの構成] ダイアログボックスで、パラメーターの値を入力または選択します。

    • Name :ポリシー名。以前に構成されたポリシーでは変更できません。
    • アクションタイプ-証明書を選択
    • Action:ポリシーに関連付ける認証アクション(プロファイル)。既存の認証アクションを選択するか、プラスをクリックして適切なタイプの新しいアクションを作成できます。
    • Log Action-ポリシーに関連付ける監査アクション。既存の監査アクションを選択するか、プラスをクリックして新しいアクションを作成できます。
    • Expression-指定したアクションを適用する接続を選択するルール。ルールは、シンプル(「true」はすべてのトラフィックを選択)または複雑にすることができます。式を入力するには、まず [式] ウィンドウの下の左端のドロップダウンリストで式のタイプを選択し、次に式のテキスト領域に式を直接入力するか、[追加] をクリックして [式の追加] ダイアログボックスを開き、その中のドロップダウンリストを使用して式で指定します)。
    • Comment:この認証ポリシーが適用されるトラフィックの種類を説明するコメントを入力できます。オプションです。
  14. [作成] または [OK]をクリックし、[閉じる] をクリックします。ポリシーを作成した場合、そのポリシーが [認証ポリシーとサーバー] ページに表示されます。

クライアント証明書のパススルー

Citrix ADCは、ユーザー認証にクライアント証明書を必要とする保護されたアプリケーションにクライアント証明書を渡すように構成できるようになりました。ADC は最初にユーザーを認証し、次にクライアント証明書を要求に挿入してアプリケーションに送信します。この機能は、適切な SSL ポリシーを追加することによって設定されます。

ユーザがクライアント証明書を提示した場合のこの機能の正確な動作は、VPN 仮想サーバの設定によって異なります。

  • VPN 仮想サーバーがクライアント証明書を受け入れるように構成されているが、クライアント証明書を必要としない場合、ADC は証明書を要求に挿入し、要求を保護されたアプリケーションに転送します。
  • VPN 仮想サーバでクライアント証明書認証が無効になっている場合、ADC は認証プロトコルを再ネゴシエートし、ユーザを再認証してから、クライアント証明書をヘッダーに挿入し、保護されたアプリケーションに要求を転送します。
  • VPN 仮想サーバーがクライアント証明書認証を要求するように設定されている場合、ADC はクライアント証明書を使用してユーザーを認証し、ヘッダーに証明書を挿入し、保護されたアプリケーションに要求を転送します。

これらのいずれの場合も、クライアント証明書のパススルーを次のように設定します。

コマンドラインインターフェイスを使用して、クライアント証明書のパススルーを作成および構成します

コマンドプロンプトで、次のコマンドを入力します。

add vpn vserver <name> SSL <IP> 443

nameには、仮想サーバの名前を置き換えます。名前には、1〰127のASCII文字が文字またはアンダースコア (_) で始まり、英字、数字、アンダースコア (#)、ピリオド (.)、スペース、コロン (:)、アットマーク (@)、等号 (=)、ハイフン (-) のみを含む必要があります。<IP>の代わりに、仮想に割り当てられたIPアドレスを使用します server.```

set ssl vserver <name> -clientAuth ENABLED -clientCert <clientcert>

<name>の代わりに、作成した仮想サーバーの名前を使用します。<clientCert>は、次のいずれかの値に置き換えてください。

  • disabled:VPN 仮想サーバでのクライアント証明書認証を無効にします。
  • [mandatory]:認証にクライアント証明書を要求するように VPN 仮想サーバを設定します。
  • オプション:クライアント証明書認証を許可するが、要求しないように VPN 仮想サーバを設定します。
bind vpn vserver <name> -policy local

<name>は、作成したVPN仮想サーバーの名前に置き換えてください。

bind vpn vserver <name> -policy cert

<name>は、作成したVPN仮想サーバーの名前に置き換えてください。

bind ssl vserver <name> -certkeyName <certkeyname>

<name>は、作成した仮想サーバーの名前に置き換えてください。<certkeyName>の代わりに、クライアント証明書キーを使用します。

bind ssl vserver <name> -certkeyName <cacertkeyname> -CA -ocspCheck Optional

<name>は、作成した仮想サーバーの名前に置き換えてください。<cacertkeyName>の代わりに、CA証明書キーを使用します。

add ssl action <actname> -clientCert ENABLED -certHeader CLIENT-CERT

<actname>は、SSLアクションの名前に置き換えてください。

add ssl policy <polname> -rule true -action <actname>

<polname>の代わりに、新しいSSLポリシーの名前を使用します。<actname>の代わりに、作成したSSLアクションの名前を使用します。

bind ssl vserver <name> -policyName <polname> -priority 10

<name>は、VPN仮想サーバーの名前に置き換えてください。

add vpn vserver vs-certpassthru SSL 10.121.250.75 443
set ssl vserver vs-certpassthru -clientAuth ENABLED -clientCert optional
bind vpn vserver vs-certpassthru -policy local
bind vpn vserver vs-certpassthru -policy cert
bind ssl vserver vs-certpassthru -certkeyName mycertKey
bind ssl vserver vs-certpassthru -certkeyName mycertKey -CA -ocspCheck Optional
add ssl action act-certpassthru -clientCert ENABLED -certHeader CLIENT-CERT
add ssl policy pol-certpassthru -rule true -action act-certpassthru
bind ssl vserver vs-certpassthru -policyName pol-certpassthru -priority 10
クライアント証明書認証