用户身份验证
应用程序支持 Kerberos- 和 NTLM 身份验证的配置。使用 NTLM 身份验证时,您可以配置域名扫描。这将有助于正确处理 NTLM 协议支持的不同用户域名格式。
推荐使用 Kerberos 身份验证,因为它是最可靠的机制。NTLM 身份验证允许黑客通过拦截网络流量来访问用户密码。
Microsoft 更新发布后(请参见ADV190023 LDAP Channel Binding 和 LDAP Signing了解详情),在 Kaspersky Web Traffic Security 中进行 NTLM 用户身份验证将不再有效。
对于两种身份验证,您都可以创建排除项,这可以让用户不用身份验证就访问 Web 资源。
配置 Kerberos 身份验证
您可以创建一个 keytab 文件并将已安装应用程序的所有服务器的 SPN 添加到其中。这将使用户能够在所有集群节点上使用自己的域账户完成身份验证。
要在代理服务器上配置 Kerberos 身份验证:
- 在应用程序 web 界面中,选择 设置 → 内置代理服务器 → 身份验证 区域。
- 在 Kerberos 字段,单击 设置 链接。
Kerberos 身份验证设置 窗口将打开。
- 设置切换开关到 已启用。
- 单击上传上传 keytab 文件。
如果之前已上传了 keytab 文件,要提换它,您必须单击 替换。
文件选择窗口将打开。
- 选择文件并单击 打开。
将上传 keytab 文件。
- 如果您要检查重复项的身份验证请求,请打开 使用重播缓存 切换开关。提供了更可靠的保护,但是会降低应用程序的性能。
- 单击 保存。
如果您更改了 已启用 或 使用重播缓存 切换开关的位置,代理服务器将在保存更改时重启。重启完成前流量处理将被暂停。
将配置 kerberos 身份验证。代理服务器仅处理来自完成了身份验证流程的用户的请求。
页面顶端创建 keytab 文件
如果您已经为单点登录身份验证创建了 keytab 文件,您可以使用此文件在代理服务器上配置 Kerberos 身份验证。
您可以使用相同的用户账户在集群的所有节点上进行身份验证。为此,您必须为这些节点中的每一个创建一个包含 的
。创建 keytab 文件时,必须使用属性生成salt(哈希函数修饰符)。生成的盐必须使用您选择的方法进行保存,以便随后将新的 SPN 添加到 keytab 文件中。
您还可以为要为其配置 Kerberos 身份验证的每个集群节点创建单独的 Active Directory 用户账户。
在您创建 keytab 文件之前
在创建 keytab 文件之前,对于每个 SPN,请确保它未在 Active Directory 中注册。您可以通过运行以下命令来执行此操作:setspn -Q <SPN>
,其中 <SPN>
具有以下结构:HTTP/<集群节点的完全限定域名 (FQDN)>@<Active Directory 域的领域名称(大写)>
。
该命令应返回“未找到这样的 SPN”
,这意味着所讨论的 SPN 未注册。如果 SPN 已注册,则在创建 keytab 文件之前,您需要从账户中取消分配 SPN 或在分配了此 SPN 的 Active Directory 中删除账户本身。
检查一个控制节点和辅助节点的 SPN 的示例: setspn -Q HTTP/control-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL |
创建 keytab 文件
使用域管理员账户,在域控制器服务器或属于该域的 Windows Server 计算机上创建 keytab 文件。
要使用单个用户账户创建 keytab 文件:
- 在“Active Directory 用户和计算机”管理单元中,创建一个用户账户,例如
control-user
。 - 要使用 AES256-SHA1 加密算法,请在 Active Directory 用户和计算机管理单元中执行以下操作:
- 打开创建的账户的属性。
- 在账户选项卡中,选择此账户支持 Kerberos AES 256 位加密复选框。
- 使用 ktpass 实用程序为
control-user
创建 keytab 文件。为此,请在命令行运行以下命令:C:\Windows\system32\ktpass.exe -princ HTTP/<控制节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser control-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <文件路径>\<文件名>.keytab
运行该命令时,实用程序将提示您输入
control-user
密码。带角色控制的节点的 SPN 将被添加到创建的 keytab 文件中。将显示生成的盐:
带有盐“<哈希值>”的哈希密码。
- 对于集群的每个节点,将 SPN 条目添加到 keytab 文件中。为此,请运行以下命令:
C:\Windows\system32\ktpass.exe -princ HTTP/<节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser control-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab -setupn -setpass -rawsalt "<在第 3 步创建 keytab 文件时获得的 salt 的哈希值>"
运行该命令时,实用程序将提示您输入
control-user
密码。
将创建 keytab 文件。此文件将包含集群节点的所有已添加的 SPN。
示例: 例如,您需要创建包含以下 3 个节点的 SPN 的 keytab 文件: 要在 C:\keytabs\ 文件夹中创建包含控制节点 SPN 的
假定您获得了盐 要再添加一个 SPN,必须运行以下命令:
要添加第三个 SPN,您必须运行以下命令:
这将导致创建一个名为 |
要针对每个节点使用单独的用户账户创建 keytab 文件:
- 在“Active Directory 用户和计算机”管理单元中,为每个集群节点创建一个单独的用户账户(例如,名称为
control-user
、secondary1-user
、secondary2-user
等的用户账户)。 - 要使用 AES256-SHA1 加密算法,请在 Active Directory 用户和计算机管理单元中执行以下操作:
- 打开创建的账户的属性。
- 在账户选项卡中,选择此账户支持 Kerberos AES 256 位加密复选框。
- 使用 ktpass 实用程序为
control-user
创建 keytab 文件。为此,请在命令行运行以下命令:C:\Windows\system32\ktpass.exe -princ HTTP/<控制节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser control-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <文件路径>\<文件名>.keytab
运行该命令时,实用程序将提示您输入
control-user
密码。带角色控制的节点的 SPN 将被添加到创建的 keytab 文件中。
- 对于集群的每个节点,将 SPN 条目添加到 keytab 文件中。为此,请运行以下命令:
C:\Windows\system32\ktpass.exe -princ HTTP/<节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser secondary1-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab
运行该命令时,实用程序将提示您输入
secondary1-user
密码。
将创建 keytab 文件。此文件将包含集群节点的所有已添加的 SPN。
示例: 例如,您需要创建包含以下 3 个节点的 SPN 的 keytab 文件: 要在 C:\keytabs\ 文件夹中创建包含控制节点 SPN 的
要再添加一个 SPN,必须运行以下命令:
要添加第三个 SPN,您必须运行以下命令:
这将导致创建一个名为 |
在您创建 keytab 文件之后
在创建 keytab 文件之后,对于每个 SPN,确保它已注册并分配给相关账户。您可以通过运行以下命令来执行此操作:setspn -Q <SPN>
,其中 <SPN>
具有以下结构:HTTP/<集群节点的完全限定域名 (FQDN)>@<Active Directory 域的领域名称(大写)>
。
该命令必须返回“找到现有的 SPN”
以及分配了 SPN 的账户。
此外,创建 keytab 文件后,您可以检查分配给相关账户的 SPN 列表。为此,您可以运行以下命令:setspn -L <账户>
,其中<账户>
具有以下结构:<用户名>@<Active Directory 域的领域名称(大写)>
。
如果使用一个账户创建了 keytab 文件,则该命令应返回为其创建 keytab 文件的所有 SPN 的列表。如果为每个节点创建了单独账户的 keytab 文件,则该命令应返回一个分配给特定账户的 SPN。
针对一个账户的示例命令: setspn -L control-user@TEST.LOCAL 每个节点单独账户的示例命令: setspn -L control-user@TEST.LOCAL setspn -L secondary1-user@TEST.LOCAL setspn -L secondary2-user@TEST.LOCAL |
配置 NTLM 身份验证
推荐使用 Kerberos 身份验证,因为它是最可靠的机制。NTLM 身份验证允许黑客通过拦截网络流量来访问用户密码。
Microsoft 更新发布后(请参见ADV190023 LDAP Channel Binding 和 LDAP Signing了解详情),在 Kaspersky Web Traffic Security 中进行 NTLM 用户身份验证将不再有效。
要在代理服务器上配置 NTLM 身份验证:
- 在应用程序 web 界面中,选择 设置 → 内置代理服务器 → 身份验证 区域。
- 在 NTLM 字段,单击 设置 链接。
NTLM 身份验证设置 窗口将打开。
- 设置切换开关到 已启用。
- 在 域名 字段中,输入想要为其配置身份验证的域的名称。
SRV 记录 用于搜索域控制器。
- 如果您想要基于定义的设置测试域控制器连接,请单击 测试连接 按钮。
测试结果显示在按钮的右侧。
- 单击 保存。
代理服务器将被重启。重启完成前流量处理将被暂停。
将配置 NTLM 身份验证。代理服务器仅处理来自完成了身份验证流程的用户的请求。
页面顶端配置域名扫描
建议启用域名扫描以确保正确操作流量处理规则和用户隶属工作区的条件的正确应用。如果您所在的组织在浏览器设置中用空白域部分或以应用程序不支持的格式保存了用户的域名,您可以禁用域名扫描。
域名的不同格式取自以下用户账户元素的组合:
- NETBIOS 名称 – 由一个16字节地址组成的唯一域名,用于局域网中的识别。
- DNS 名称 – 域名,包括所有被用点分开的 DNS 层级的父级域的名称。
- sAMAccountName – Windows 2000格式之前的用户账户名称。
- UPN 名称(用户主名称) – 用户账户名称,由用字符 @ 分开的 UPN 前缀(输入名称)和 UPN 后缀(域名)组成。
DNS 名称被默认用作 UPN 后缀。您可以指定其它 UPN 后缀,并在账户属性而不是 DNS 名称中进行选择。
在 Active Directory 管理元件中,这些元素对应以下示例中呈现的字段,其中:
name
– UPN 前缀test.local
– DNS 名称TEST
– NETBIOS 名称lastname
– sAMAccountNametest.com
– 另外的 UPN 后缀Active Directory 管理单元中的域和用户账户属性
如果域名扫描被禁用,用户身份验证将根据下表执行。
域名扫描被禁用时的身份验证
域名格式 |
示例 |
身份验证 |
---|---|---|
DNS-Name\sAMAccountName |
test.local\lastname |
已执行 |
NETBIOS-Name\sAMAccountName |
test\lastname |
已执行 |
UPN-Suffix\sAMAccountName |
test.com\lastname |
已执行 |
\sAMAccountName | <any value>\lastname |
已执行 |
DNS-Name\UPN-Prefix |
test.local\name |
未执行。 |
NETBIOS-Name\UPN-Prefix |
test\name |
未执行。 |
UPN-Suffix\UPN-Prefix |
test.com\name |
未执行。 |
UPN-Prefix@DNS-Name |
name@test.local |
已执行,如果域的 DNS 名称被用作用户 UPN 前缀。 |
UPN-Prefix@NETBIOS-Name |
name@test |
未执行。 |
UPN-Prefix@UPN-Suffix |
name@test.com |
已执行,如果指定的 UPN 后缀被用作用户的 UPN 后缀。 |
sAMAccountName@DNS-Name |
lastname@test.local |
已执行 |
sAMAccountName@NETBIOS-Name |
lastname@test |
已执行 |
sAMAccountName@UPN-Suffix |
lastname@test.com |
未执行。 |
如果启用了域名扫描,只有当域名是用受支持的格式指定时,应用程序才会允许用户身份验证。在此情况下,应用程序将可以正确识别用户并应用所定义的流量处理规则和工作区设置。
受目前版本和6.0版本应用程序支持的域名格式请参见下表。
域名支持的格式
格式 |
示例 |
Support in version 6.0 |
---|---|---|
NETBIOS\sAMAccountName |
TEST\lastname |
是(Y) |
sAMAccountName@NETBIOS |
lastname@TEST |
否 |
sAMAccountName@DNS-Name |
lastname@test.local |
是(Y) |
DNS-Name\sAMAccountName |
test.local\lastname |
否 |
UPN-Prefix@UPN-Suffix |
name@test.com |
否 |
要配置域名扫描:
- 在应用程序 web 界面中,选择 设置 → 内置代理服务器 → 身份验证 区域。
- 在 NTLM 字段,单击 设置 链接。
NTLM 身份验证设置 窗口将打开。
- 设置 检查域名 切换开关到 已启用。
- 在允许的 DNS/NETBIOS 域名字段中,指定被允许的域名。
- 如果您想要添加多个名称,请点击
图标并在出现的输入字段中指定名称。
- 单击 保存。
代理服务器将被重启。重启完成前流量处理将被暂停。
将配置域名扫描。如果尝试用未被指定为允许域名的域名进行身份验证,代理服务器将不会把身份验证中继到 Active Directory 服务器。用户必须重新输入账户凭证。
页面顶端添加身份验证排除项
您可以将用户计算机或网页资源添加到身份验证排除项。如果请求发送自排除项列表上的计算机,或如果请求的是来自排除项列表的网页资源,用户将不必完成身份验证以连接到代理服务器。
排除项将应用于 Kerberos 身份验证和 NTLM 身份验证。
要添加身份验证排除项:
- 在应用程序 web 界面中,选择 设置 → 内置代理服务器 → 身份验证 区域。
- 如果您想要允许指定计算机未经在代理服务器上进行身份验证就访问所有的网页资源,请在 源 设置组中输入其 IP 地址。
- 如果您想要允许所有计算机连接到定义的网页资源而无需在代理服务器上进行身份验证,请在 目标 设置组中指定以下设置之一:
- 单击 保存。
将添加身份验证排除项。
页面顶端