设置 NetScaler SSO
您可以将 NetScaler SSO 配置为以下两种方式之一工作:模拟或委派。通过模拟进行 SSO 比通过委托进行的 SSO 更简单,因此在您的配置允许的情况下更可取。要通过模拟配置 NetScaler SSO,您必须拥有用户的用户名和密码。
要通过委托配置 NetScaler SSO,您必须拥有以下格式之一的委托用户的证书:用户的用户名和密码、包括用户名和加密密码的 keytab 配置,或者委托用户证书和匹配的 CA 证书。
配置 NetScaler SSO 的先决条件
在配置 NetScaler SSO 之前,您需要完全配置 NetScaler 设备以管理流向 Web 应用程序服务器的流量和身份验证。因此,必须为这些 Web 应用程序服务器配置负载平衡或内容切换,然后配置身份验证、授权和审核。您还必须验证设备、LDAP 服务器和 Kerberos 服务器之间的路由。
如果尚未以这种方式配置网络,请执行以下配置任务:
- 为每个 Web 应用程序服务器配置服务器和服务。
- 配置流量管理虚拟服务器以处理进出 Web 应用程序服务器的流量。
下面是通过 NetScaler 命令行执行其中每项任务的简要说明和示例。有关进一步帮助,请参阅 设置身份验证虚拟服务器。
注意
从 NetScaler 13.1 版本起,在 NetScaler 设备对后端服务器进行 Kerberos SSO 身份验证期间,支持根域和树域之间的遍历。
使用 CLI 创建服务器和服务
要使 NetScaler SSO 获取服务的 TGS(服务票证),分配给 NetScaler 设备上的服务器实体的 FQDN 必须与 Web 应用程序服务器的 FQDN 匹配,或者服务器实体名称必须与 Web 应用程序服务器的 NetBios 名称匹配。您可以采用以下任一方法:
- 通过指定 Web 应用程序服务器的 FQDN 来配置 NetScaler 服务器实体。
- 通过指定 Web 应用程序服务器的 IP 地址来配置 NetScaler 服务器实体,并为服务器实体分配与 Web 应用程序服务器的 NetBios 名称相同的名称。
在命令提示符下,键入以下命令:
- add server name <serverFQDN>
- add service name serverName serviceType port
<!--NeedCopy-->
对于变量,请用以下值替换:
- serverName。NetScaler 设备用于引用此服务器的名称。
- serverFQDN。服务器的 FQDN。如果服务器没有为其分配域,请使用服务器的 IP 地址,并确保服务器实体名称与 Web 应用程序服务器的 NetBios 名称匹配。
- serviceName。用于引用此服务的 NetScaler 设备的名称。
- 类型。服务使用的协议,HTTP 或 MSSQLSVC。
- 端口。服务侦听的端口。HTTP 服务通常在端口 80 上侦听。安全 HTTPS 服务通常在端口 443 上侦听。
示例:
以下示例在 NetScaler 设备上为 Web 应用程序服务器 was1.example.com 添加服务器和服务条目。第一个示例使用 Web 应用程序服务器的 FQDN;第二个示例使用 IP 地址。
要使用 Web 应用程序服务器 FQDN was1.example.com 添加服务器和服务,请键入以下命令:
add server was1 was1.example.com
add service was1service was1 HTTP 80
<!--NeedCopy-->
要使用 Web 应用程序服务器 IP 和 NetBIOS 名称(其中 Web 应用程序服务器 IP 为 10.237.64.87,NetBios 名称为 WAS1)添加服务器和服务,请键入以下命令:
add server WAS1 10.237.64.87
add service was1service WAS1 HTTP 80
<!--NeedCopy-->
使用 CLI 创建流量管理虚拟服务器
流量管理虚拟服务器管理客户端和 Web 应用程序服务器之间的流量。您可以使用负载平衡或内容交换虚拟服务器作为流量管理服务器。两种类型的 SSO 配置都相同。
要创建负载平衡虚拟服务器,请在命令提示符下键入以下命令:
add lb vserver <vserverName> <type> <IP> <port>
<!--NeedCopy-->
对于变量,请用以下值替换:
- vserverName — NetScaler 设备的名称,用于引用此虚拟服务器。
- type— 服务使用的协议,可以是 HTTP 或 MSSQLSVC。
- IP— 分配给虚拟服务器的 IP 地址。这通常是局域网上 IANA 保留的非公有 IP 地址。
- port— 服务侦听的端口。HTTP 服务通常在端口 80 上侦听。安全 HTTPS 服务通常在端口 443 上侦听。
示例:
要将名为 tmvserver1 的负载平衡虚拟服务器添加到管理端口 80 上 HTTP 流量的配置中,为其分配局域网 IP 地址 10.217.28.20,然后将负载平衡虚拟服务器绑定到 wasservice1 服务,请键入以下命令:
add lb vserver tmvserver1 HTTP 10.217.28.20 80
bind lb vserver tmvserv1 wasservice1
<!--NeedCopy-->
使用 CLI 创建身份验证虚拟服务器
身份验证虚拟服务器管理客户端和身份验证 (LDAP) 服务器之间的身份验证流量。要创建身份验证虚拟服务器,请在命令提示符下键入以下命令:
add authentication vserver <authvserverName> SSL <IP> 443
<!--NeedCopy-->
对于变量,请用以下值替换:
- authvServerName — NetScaler 设备的名称,用于指代此身份验证虚拟服务器。必须以字母、数字或下划线字符 (_) 开头,并且必须只包含字母、数字和连字符 (-)、句点 (.) 井号 (#)、空格 ()、at (@)、等号 (=)、冒号 (:) 和下划线字符。可以在添加身份验证虚拟服务器后使用重命名身份验证虚拟服务器命令进行更改。
- IP— 分配给身份验证虚拟服务器的 IP 地址。与流量管理虚拟服务器一样,此地址通常是局域网上 IANA 保留的非公有 IP。
- domain— 分配给虚拟服务器的域。这通常是您网络的域。配置身份验证虚拟服务器时,习惯做法是(尽管不是必需的)用所有大写字母输入域。
示例:
要将名为 authverver1 的身份验证虚拟服务器添加到配置中并为其分配 LAN IP 10.217.28.21 和域 EXAMPLE.COM,您需要键入以下命令:
add authentication vserver authvserver1 SSL 10.217.28.21 443
<!--NeedCopy-->
将流量管理虚拟服务器配置为使用身份验证配置文件
可以将身份验证虚拟服务器配置为处理单个域或多个域的身份验证。如果将其配置为支持多个域的身份验证,则还必须通过创建身份验证配置文件,然后将流量管理虚拟服务器配置为使用该身份验证配置文件来为 NetScaler SSO 指定域。
注意
流量管理虚拟服务器可以是负载平衡 (lb) 或内容交换 (cs) 虚拟服务器。以下说明假定您使用的是负载平衡虚拟服务器。要配置内容交换虚拟服务器,只需 将 set cs vserver 替换为 set lb vserver 即可。否则过程是相同的。
要创建身份验证配置文件,然后在流量管理虚拟服务器上配置身份验证配置文件,请键入以下命令:
- add authentication authnProfile <authnProfileName> {-authvserverName <string>} {-authenticationHost <string>} {-authenticationDomain <string>}
- set lb vserver \<vserverName\> -authnProfile <authnprofileName>
<!--NeedCopy-->
对于变量,请用以下值替换:
- authnprofileName— 身份验证配置文件的名称。必须以字母、数字或下划线字符 (_) 开头,并且必须由 1 到 31 个字母数字或连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符组成。
- authvserverName— 此配置文件用于身份验证的身份验证虚拟服务器的名称。
- authenticationHost — 身份验证虚拟服务器的主机名。
- authenticationDomain— NetScaler SSO 为其处理身份验证的域。如果身份验证虚拟服务器对多个域执行身份验证,则需要此选项,以便在 NetScaler 设备设置流量管理虚拟服务器 Cookie 时包含正确的域。
示例:
要为 example.com 域的身份验证创建名为 authnProfile1 的身份验证配置文件,并将负载平衡虚拟服务器 vserver1 配置为使用身份验证配置文件 authnProfile1,请键入以下命令:
add authentication authnProfile authnProfile1 -authnvsName authvsesrver1
-authenticationHost authvsesrver1 -authenticationDomain example.com
set lb vserver vserver1 -authnProfile authnProfile1
<!--NeedCopy-->