Citrix ADC

SSO の設定

偽装によって認証するようにCitrix ADC SSOを構成することは、委任によって認証するようにSSOを構成するよりも簡単であるため、構成で許可されている場合に適しています。KCDアカウントを作成します。ユーザーのパスワードを使用できます。

ユーザーのパスワードがない場合は、委任によって認証されるようにCitrix ADC SSOを構成できます。偽装によって認証するようにSSOを構成するよりも複雑ですが、委任方法は、すべての状況でユーザーの資格情報をCitrix ADCアプライアンスで使用できるとは限らないという柔軟性を提供します。

偽装または委任のいずれの場合も、Web アプリケーションサーバーで統合認証を有効にする必要があります。

Webアプリケーションサーバーで統合認証を有効にする

Kerberos SSOが管理する各WebアプリケーションサーバーでCitrix ADC Kerberos SSOをセットアップするには、そのサーバーの構成インターフェイスを使用して、認証を要求するようにサーバーを構成します。Kerberos をサポートしていないクライアントについては、NTLM にフォールバックして、基本設定で Kerberos (ネゴシエート) 認証を選択します。

以下は、認証を要求するようにMicrosoftインターネットインフォメーションサーバー(IIS)を構成するための手順です。Web アプリケーションサーバーが IIS 以外のソフトウェアを使用している場合は、その Web サーバーソフトウェアのマニュアルを参照して手順を確認してください。

統合認証を使用するように Microsoft IIS を構成するには

  1. IIS サーバーにログオンし、 インターネットインフォメーションサービスマネージャーを開きます。
  2. 統合認証を有効にするWebサイトを選択します。IISMによって管理されるすべてのIISWebサーバーの統合認証を有効にするには、既定のWebサイトの認証設定を構成します。個々のサービス (Exchange、Exadmin、ExchWeb、パブリックなど) の統合認証を有効にするには、サービスごとにこれらの認証設定を個別に構成します。
  3. デフォルトのWebサイトまたは個々のサービスの[プロパティ]ダイアログボックスを開き、[ディレクトリセキュリティ]タブをクリックします。
  4. [認証][アクセス制御] の横にある [編集] を選択します。
  5. 匿名アクセスを無効にしてください。
  6. 統合 Windows 認証を有効にします(のみ)。統合Windows認証を有効にするには、WebサーバーのプロトコルネゴシエーションをNTLMネゴシエートに自動的に設定する必要があります。これにより、Kerberos非対応デバイスのNTLMへのフォールバックを伴うKerberos認証が指定されます。このオプションが自動的に選択されていない場合は、手動でプロトコルネゴシエーションを Negotiate, NTLM に設定します。

なりすましによるSSOの設定

なりすましによって、Citrix ADC SSO の KCD アカウントを構成できます。この構成では、Citrix ADCアプライアンスは、ユーザーが認証サーバーに対して認証を行うときにユーザーのユーザー名とパスワードを取得し、それらの資格情報を使用してユーザーを偽装し、チケット交付チケット(TGT)を取得します。ユーザー名がUPN形式の場合、アプライアンスはUPNからユーザーのレルムを取得します。それ以外の場合は、初期認証時に使用される SSO ドメインまたはセッションプロファイルからユーザーの名前とレルムを抽出して、ユーザーの名前とレルムを取得します。

ユーザー名がすでにドメインなしで追加されている場合、ドメイン付きのユーザー名を追加することはできません。ドメインのあるユーザー名が最初に追加され、次にドメインのない同じユーザー名が追加された場合、Citrix ADCアプライアンスはユーザー名をユーザーリストに追加します。

KCD アカウントを構成するときは、ユーザーがアクセスしているサービスのレルムに realm パラメーターを設定する必要があります。Citrix ADCアプライアンスを使用した認証またはセッションプロファイルからユーザーのレルムを取得できない場合は、同じレルムがユーザーのレルムとしても使用されます。

パスワードを使用した偽装によって SSO 用の KCD アカウントを作成するには

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


add aaa kcdaccount <accountname> -realmStr <realm>

変数の場合は、次の値を置き換えます。

  • accountname. KCD アカウント名。
  • realm. Citrix ADC SSOに割り当てられたドメイン。

kcdccount1 という名前の KCD アカウントを追加し、kcdvserver.keytab という名前のキータブを使用するには、次のコマンドを入力します。


add aaa kcdAccount kcdaccount1 -keytab kcdvserver.keytab

Citrix ADC GUIを使用したKerberos偽装の構成については、 シトリックスサポートを参照してください。

委任によるSSOの構成

委任による SSO を構成するには、次のタスクを実行する必要があります。

  • 委任されたユーザー証明書による委任を構成する場合は、一致するCA証明書をCitrix ADCアプライアンスにインストールし、Citrix ADC構成に追加します。
  • アプライアンスで KCD アカウントを作成します。アプライアンスはこのアカウントを使用して、保護されたアプリケーションのサービスチケットを取得します。
  • Active Directory サーバーを構成します。

KCDアカウントの作成とNetScalerアプライアンスでの構成の詳細については、次のトピックを参照してください。

Citrix ADCアプライアンスへのクライアントCA証明書のインストール

クライアント証明書を使用してCitrix ADC SSOを構成する場合は、クライアント証明書ドメインの一致するCA証明書(クライアントCA証明書)をCitrix ADCアプライアンスにコピーしてから、CA証明書をインストールする必要があります。クライアントCA証明書をコピーするには、選択したファイル転送プログラムを使用して証明書と秘密鍵ファイルをCitrix ADCアプライアンスに転送し、ファイルを/nsconfig/sslに保存します。

Citrix ADCアプライアンスにクライアントCA証明書をインストールするには

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


add ssl certKey <certkeyName> -cert <cert> [(-key <key> [-password]) | -fipsKey <fipsKey>][-inform ( DER | PEM )][-expiryMonitor ( ENABLED | DISABLED | UNSET ) [-notificationPeriod <positive_integer>]] [-bundle ( YES | NO )]

変数の場合は、次の値を置き換えます。

  • certkeyName. クライアント CA 証明書の名前。ASCII の英数字またはアンダースコア (_) 文字で始まり、1 ~ 30 文字で構成する必要があります。使用できる文字には、ASCII 英数字、アンダースコア、ハッシュ(#)、ピリオド(.)、スペース、コロン(:)、アットマーク(@)、等号(=)、ハイフン(-)があります。証明書とキーのペアが作成された後は変更できません。名前に 1 つ以上のスペースが含まれる場合は、名前を二重引用符または一重引用符で囲みます (「my cert」や「my cert」など)。
  • cert. 証明書とキーのペアを形成するために使用される X509 証明書ファイルのフルパス名とファイル名。証明書ファイルは、Citrix ADCアプライアンスの/nsconfig/ssl/ディレクトリに保存する必要があります。
  • key. X509 証明書ファイルへの秘密キーを含むファイルの完全パス名とファイル名。キーファイルは、Citrix ADCアプライアンスの/nsconfig/ssl/ディレクトリに保存する必要があります。
  • password. 秘密鍵が指定されている場合、秘密鍵の暗号化に使用されるパスフレーズ。このオプションを使用して、暗号化された秘密鍵を PEM 形式でロードします。
  • fipsKey. FIPS アプライアンスのハードウェアセキュリティモジュール (HSM) 内に作成された FIPS キー、または HSM にインポートされたキーの名前。

    キーまたは fipsKey のいずれかを指定できますが、両方を指定することはできません。

  • inform. 証明書および秘密キーファイルの形式(PEM または DER)。
  • passplain. 秘密鍵の暗号化に使用するパスフレーズ。PEM 形式で暗号化された秘密キーを追加するときに必要です。
  • expiryMonitor。証明書の有効期限が近づいたときにアラートを発行するようにCitrix ADCアプライアンスを構成します。可能な値: ENABLED, DISABLED, UNSET.
  • notificationPeriod. expiryMonitor が ENABLED の場合、証明書の有効期限が切れるまでにアラートを発行するまでの日数。
  • bundle。サーバー証明書をファイル内の発行者の証明書にリンクした後、証明書チェーンを単一のファイルとして解析します。指定可能な値:はい、いいえ。

次の例では、指定された委任ユーザー証明書customer-cert.pemをキーcustomer-key.pem とともにCitrix ADC構成に追加し、パスワード、証明書形式、有効期限モニター、および通知期間を設定します。

委任されたユーザー証明書を追加するには、次のコマンドを入力します。


add ssl certKey customer -cert "/nsconfig/ssl/customer-cert.pem"
-key "/nsconfig/ssl/customer-key.pem" -password "dontUseDefaultPWs!"
-inform PEM -expiryMonitor ENABLED [-notificationPeriod 14]

KCD アカウントの作成

委任によってCitrix ADC SSOを構成する場合は、ユーザーのログオン名とパスワードを使用するか、ユーザーのログオン名とキータブを使用するか、ユーザーのクライアント証明書を使用するように、KCDアカウントを構成できます。ユーザー名とパスワードでSSOを構成する場合、Citrix ADCアプライアンスは委任されたユーザーアカウントを使用してチケット交付チケット(TGT)を取得し、TGTを使用して各ユーザーが要求する特定のサービスのサービスチケットを取得します。キータブファイルでSSOを構成する場合、Citrix ADCアプライアンスは委任されたユーザーアカウントとキータブ情報を使用します。委任されたユーザー証明書を使用してSSOを構成する場合、Citrix ADCアプライアンスは委任されたユーザー証明書を使用します。

パスワードを使用して委任して SSO 用の KCD アカウントを作成するには

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

add aaa kcdAccount <kcdAccount> {-keytab <string>} {-realmStr <string>} {-delegatedUser <string>} {-kcdPassword } {-usercert <string>} {-cacert <string>} [-userRealm <string>]
[-enterpriseRealm <string>] [-serviceSPN <string>]

変数の場合は、次の値を置き換えます。

  • kcdAccount -KCDアカウントの名前。これは必須の引数です。Maximum Length: 31
  • keytab -keytabファイルへのパス。指定した場合、このコマンドで他のパラメーターを指定する必要はありません。最大長:127
  • realmStr -Kerberosのレルム。最大長:255
  • 委任された ユーザー-Kerberosで制約された委任を実行できるユーザー名。最大長:255
  • kcdPassword- 委任されたユーザーのパスワード。Maximum Length: 31
  • usercert- 委任ユーザーのSSL証明書(秘密鍵を含む)。最大長:255

  • cacert -UserCertまたはPKINITバックチャネルを実行する場合のCA証明書。最大長:255

  • userRealm- ユーザーのレルム。最大長:255

  • enterpriseRealm -ユーザーのエンタープライズ・レルム。これは、KDCがプリンシパル名ではなくエンタープライズユーザー名を期待する特定のKDC展開でのみ指定する必要があります。最大長:255

  • serviceSPN- サービスSPN。指定すると、これはKerberosチケットをフェッチするために使用されます。指定しない場合、Citrix ADCはサービスfqdnを使用してSPNを構築します。最大長:255

例 (UPN 形式)

kcdaccount1という名前のKCDアカウントを、パスワード1とEXAMPLE.COMの領域を使用してCitrix ADCアプライアンス構成に追加し、委任されたユーザーアカウントをUPN形式(root)で指定するには、次のコマンドを入力します。


add aaa kcdaccount kcdaccount1 –delegatedUser root
-kcdPassword password1 -realmStr EXAMPLE.COM

例 (SPN 形式)

kcdaccount1という名前のKCDアカウントを、パスワード1とEXAMPLE.COMの領域を使用してCitrix ADCアプライアンス構成に追加し、委任されたユーザーアカウントをSPN形式で指定するには、次のコマンドを入力します。


add aaa kcdAccount kcdaccount1 -realmStr EXAMPLE.COM
-delegatedUser "host/kcdvserver.example.com" -kcdPassword password1

キータブを使用した委任による SSO の KCD アカウントの作成

認証にキータブファイルを使用する場合は、まずキータブを作成します。ADサーバーにログオンしてktpassユーティリティを使用してキータブファイルを手動で作成するか、Citrix ADC構成ユーティリティを使用してバッチスクリプトを作成し、ADサーバーでそのスクリプトを実行してキータブファイルを生成することができます。次に、FTPまたは他のファイル転送プログラムを使用して、キータブファイルをCitrix ADCアプライアンスに転送し、/nsconfig/krbディレクトリに配置します。最後に、委任によってCitrix ADC SSOのKCDアカウントを構成し、Citrix ADCアプライアンスへのキータブファイルのパスとファイル名を指定します。

キータブファイルを手動で作成するには

AD サーバーのコマンドラインにログオンし、コマンドプロンプトで次のコマンドを入力します。

ktpass princ <SPN> ptype KRB5_NT_PRINCIPAL mapuser <DOMAIN><username> pass <password> -out <File_Path>

変数の場合は、次の値を置き換えます。

  • SPN。KCD サービスアカウントのサービスプリンシパル名。
  • DOMAIN。Active Directory サーバーのドメイン。
  • username。KSAアカウントのユーザー名。
  • password. KSA アカウントのパスワード。
  • path。生成後に keytab ファイルを保存するディレクトリのフルパス名。
Citrix ADC構成ユーティリティを使用してキータブファイルを生成するスクリプトを作成するには
  1. [セキュリティ] > [AAA-アプリケーショントラフィック] に移動します。
  2. データペインの [Kerberos 制約付き委任] で、[バッチファイル] をクリックして [キー] タブを生成します。
  3. KCD (Kerberos 制約付き委任) キータブスクリプトの生成 」ダイアログボックスで、次のパラメータを設定します。
    • ドメインユーザー名。KSAアカウントのユーザー名。
    • ドメインパスワード。KSA アカウントのパスワード。
    • サービスプリンシパル。KSA のサービスプリンシパル名。
    • [出力ファイル名]: AD サーバーに keytab ファイルを保存する絶対パスとファイル名。
  4. [ドメインユーザーアカウントの作成] チェックボックスをオフにします。
  5. [スクリプトの生成] をクリックします。
  6. Active Directory サーバーにログオンし、コマンドラインウィンドウを開きます。
  7. [生成されたスクリプト] ウィンドウからスクリプトをコピーし、Active Directory サーバーのコマンドラインウィンドウに直接貼り付けます。キータブが生成され、「出力ファイル名」 (Output File Name) で指定したファイル名の下のディレクトリに保存されます。
  8. 任意のファイル転送ユーティリティを使用して、Active Directory サーバーからCitrix ADCアプライアンスにキータブファイルをコピーし、/nsconfig/krbディレクトリに配置します。
KCD アカウントを作成するには

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


add aaa kcdaccount <accountname> –keytab <keytab>

kcdccount1 という名前の KCD アカウントを追加し、kcdvserver.keytab という名前のキータブを使用するには、次のコマンドを入力します。


add aaa kcdaccount kcdaccount1 –keytab kcdvserver.keytab

委任されたユーザー証明書を使用して委任によって SSO の KCD アカウントを作成するには

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


add aaa kcdaccount <accountname> -realmStr <realm> -delegatedUser <user_nameSPN> -usercert <cert> -cacert <cacert>

変数の場合は、次の値を置き換えます。

  • accountname. KCD アカウントの名前。
  • RealmStr。KCD アカウントのレルム。通常は SSO が設定されているドメインです。
  • delegatedUser。委任されたユーザー名 (SPN 形式)。
  • usercert。Citrix ADCアプライアンス上の委任されたユーザー証明書ファイルのフルパスと名前。委任されたユーザー証明書には、クライアント証明書と秘密キーの両方が含まれていなければならず、PEM 形式である必要があります。スマートカード認証を使用する場合は、スマートカード証明書テンプレートを作成して、秘密鍵を使用して証明書をインポートできるようにする必要がある場合があります。
  • cacert。Citrix ADCアプライアンス上のCA証明書ファイルのフルパスと名前。

kcdccount1 という名前の KCD アカウントを追加し、kcdvserver.keytab という名前のキータブを使用するには、次のコマンドを入力します。


add aaa kcdaccount kcdaccount1 -realmStr EXAMPLE.COM
     -delegatedUser "host/kcdvserver.example.com" -usercert /certs/usercert
     -cacert /cacerts/cacert

Citrix ADC SSO用のActive Directory のセットアップ

委任によってSSOを構成する場合、Citrix ADCアプライアンスでKCDAccountを作成するだけでなく、LDAPアクティブディレクトリサーバーに一致するKerberosサービスアカウント(KSA)を作成し、SSO用にサーバーを構成する必要があります。KSA を作成するには、アクティブディレクトリサーバーでアカウント作成プロセスを使用します。アクティブ・ディレクトリ・サーバーで SSO を構成するには、KSA のプロパティ・ウィンドウを開きます。[委任]タブで、次のオプションを有効にします。指定したサービスへの委任についてのみこのユーザーを信頼し、任意の認証プロトコルを使用します。(Kerberosのみのオプションは、プロトコルの移行や制約された委任を有効にしないため、機能しません。)最後に、Citrix ADC SSOが管理するサービスを追加します。

[KSA アカウントのプロパティ] ダイアログボックスに [委任] タブが表示されない場合は、説明に従って KSA を構成する前に、Microsoft setspn コマンドラインツールを使用して、タブが表示されるようにアクティブディレクトリサーバーを構成する必要があります。

Kerberos サービスアカウントの委任を構成するには

  1. 作成した Kerberos サービスアカウントの LDAP アカウント構成ダイアログボックスで、[委任] タブをクリックします。
  2. [指定したサービスへの委任に対してのみこのユーザーを信頼する] を選択します。
  3. [指定したサービスへの委任に対してのみこのユーザーを信頼する] で、[任意の認証プロトコルを使用する] を選択します。
  4. [このアカウントが委任された資格情報を提示できるサービス]で、[追加]をクリックします。
  5. [サービス の追加]ダイアログボックスで、[ユーザー または コンピューター]をクリックし、サービスアカウントに割り当てるリソースをホストするサーバーを選択して、[OK]をクリックします。

    • 制約付き委任は、Kerberos が他のドメインとの信頼関係を持つ可能性がある場合でも、アカウントに割り当てられたドメイン以外のドメインでホストされているサービスをサポートしません。
    • 新しいユーザーがアクティブディレクトリに作成された場合は、次のコマンドを使用して setspn を作成します。setspn-A ホスト/kcdvserver.example.com examplekcdtest
  6. [サービス の追加]ダイアログボックスに戻り、[利用可能なサービス]リストで、サービスアカウントに割り当てられているサービスを選択します。Citrix ADC SSO は、HTTP サービスと MSSQLSVC サービスをサポートしています。
  7. [OK]をクリックします。

高度な暗号化を使用してKCDアカウントを構成する際の注意点

  • keytabを使用する場合の構成例: kcdaccountを追加します lbvs_keytab_aes256 -キータブ “/nsconfig/krb/kcd2_aes256.keytab”
  • keytabに複数の暗号化タイプがある場合は、次のコマンドを使用します。このコマンドは、ドメインユーザーパラメータを追加でキャプチャします。addkcdaccount lbvs_keytab_aes256 -キータブ “/nsconfig/krb/kcd2_aes256.keytab” –domainUser “HTTP/lbvs.aaa.local”
  • ユーザー資格情報を使用する場合は、次のコマンドを使用します 。addkcdaccount kslb2_user -realmStr AAA.LOCAL -delegatedUser lbvs -kcdPassword <password>
  • 正しい domainUser 情報が提供されていることを確認してください。ADでユーザーログオン名を探すことができます。