按委派配置 SSO

要按委派配置 SSO,您需要执行以下任务:

  • 如果要通过委派用户证书配置委派,请在 Citrix ADC 设备上安装匹配的 CA 证书并将其添加到 Citrix ADC 配置中。
  • 在设备上创建 KCD 帐户。设备使用此帐户获取受保护应用程序的服务票证。
  • 配置 Active Directory 服务器。

注意

有关在 NetScaler 设备上创建 KCD 帐户和配置的详细信息,请参阅以下主题:

在 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 字母数字或下划线 (_) 字符开头,并且必须由一到三十一个字符组成。允许的字符包括 ASCII 字母数字、下划线、散列 (#)、句点 (.)、空格、冒号 (:)、在 (@)、等于 (=) 和连字符 (-)。创建证书密钥对后无法更改。如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的证书”或“我的证书”)。
  • 证书。用于形成证书密钥对的 X509 证书文件的完整路径名和文件名。证书文件必须存储在 Citrix ADC 设备的 /nsconfig/SSL/ 目录中。
  • 密钥。包含 X509 证书文件私钥的文件的完整路径名和文件名。密钥文件必须存储在 /nsconfig/SSL/ 目录中的 Citrix ADC 设备上。
  • 密码。如果指定了私钥,则用于加密私钥的密码。使用此选项可以加载 PEM 格式的加密私钥。
  • fipsKey。在 FIPS 设备的硬件安全模块 (HSM) 内创建的 FIPS 密钥或导入到 HSM 的密钥的名称。

    注意

    您可以指定密钥或 FIPS 密钥,但不能同时指定两者。

  • inform。证书和私钥文件的格式(PEM 或 DER)。
  • passplain。传递用于加密私钥的短语。以 PEM 格式添加加密私钥时必填项。
  • expiryMonitor。将 Citrix ADC 设备配置为在证书即将过期时发出警报。可能的值:已启用、已禁用、未设置。
  • notificationPeriod。如果 expiryMonitor 已启用,则证书到期之前发出警报的天数。
  • bundle。将服务器证书链链接到文件中的颁发者证书后,将证书链解析为单个文件。可能的值:是,否。

示例

以下示例将指定的委派用户证书客户证书 .pem 与密钥客户密钥 .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 <accountname> -delegatedUser root -kcdPassword <password> -realmStr <realm>

对于变量,请替换以下值:

  • 帐户名称。KCD 帐户的名称。
  • 密码。KCD 帐户的密码。
  • 领域。KCD 帐户的领域,通常是 SSO 处于活动状态的域。

示例(UPN 格式)

要将名为 kcdaccount1 的 KCD 帐户添加到 Citrix ADC 设备配置中,并使用密码 1 和 EASPLE.com 范围(以 UPN 格式(作为根)指定委派用户帐户),请键入以下命令:


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

示例(SPN 格式)

要将名为 kcdaccount1 的 KCD 帐户添加到 Citrix ADC 设备配置中,并使用密码 1 和 EASPLE.com 的范围,以 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 服务帐户的服务主体名称。
  • 域名。Active Directory 服务器的域。
  • 用户名。KSA 帐户用户名。
  • 密码。KSA 帐户密码。
  • 路径。生成 keytab 文件后要在其中存储该文件的目录的完整路径名称。

使用 Citrix ADC 配置实用程序创建脚本以生成密钥选项卡文件

  1. 导航到安全 > AAA-应用程序流量。
  2. 在数据窗格中的 Kerberos 约束委派下,单击批处理文件以生成 Keytab。
  3. 在“生成 KCD(Kerberos 约束委派)键选项卡脚本”对话框中,设置以下参数:
    • 域用户名。KSA 帐户用户名。
    • 域密码。KSA 帐户密码。
    • 服务主体。KSA 的服务主体名称。
    • 输出文件名。要在 AD 服务器上保存 keytab 文件的完整路径和文件名。
  4. 清除“创建域用户帐户”复选框。
  5. 单击生成脚本
  6. 登录到 Active Directory 服务器并打开命令行窗口。
  7. 从“生成的脚本”窗口复制脚本 ,然后直接将其粘贴到 Active Directory 服务器命令行窗口中。键选项卡将生成并存储在您指定为输出文件名的文件名下的目录中。
  8. 使用您选择的文件传输实用程序将密钥选项卡文件从 Active Directory 服务器复制到 Citrix ADC 设备,并将其放置在 /nsconfig/krb 目录中。

创建 KCD 帐户

在命令提示符下,键入以下命令:

add aaa kcdaccount <accountname> –keytab <keytab>

示例

要添加名为 kcdccount1 的 KCD 帐户,并使用名为 kcd虚拟服务器.keytab 的键选项卡,您需要键入以下命令:


add aaa kcdaccount kcdaccount1 –keytab kcdvserver.keytab

使用委派用户证书为 SSO 创建 KCD 帐户

在命令提示符下,键入以下命令:

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

对于变量,请替换以下值:

  • 帐户名称。KCD 帐户的名称。
  • realmStr。KCD 帐户的领域,通常是为其配置 SSO 的域。
  • delegatedUser。委派用户名,采用 SPN 格式。
  • usercert。Citrix ADC 设备上委派用户证书文件的完整路径和名称。委派用户证书必须同时包含客户端证书和私钥,并且必须采用 PEM 格式。如果使用智能卡身份验证,则可能需要创建智能卡证书模板,以允许使用私钥导入证书。
  • cacert。Citrix ADC 设备上 CA 证书文件的完整路径和名称。

示例

要添加名为 kcdccount1 的 KCD 帐户,并使用名为 kcd虚拟服务器.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. 在“添加服务”对话框中,单击用户计算机,选择承载要分配给服务帐户的资源的服务器,然后单击确定

    注意

    -  约束委派不支持在分配给帐户的域以外的域中托管的服务,即使 Kerberos 可能与其他域有信任关系。 -  如果在活动目录中创建了新用户,请使用以下命令创建 setspn:setspn-A 主机 /kcd虚拟服务器.example.com
    
  6. 返回“添加服务”对话框的“可用服务”列表中,选择分配给服务帐户的服务。Citrix ADC SSO 支持 HTTP 和 MSSQLSVC 服务。
  7. 单击确定