尝试通过JMeter进行Kerberos身份验证时遇到了问题。我在其他站点上遵循了一些设置指南,但JMeter仍然无法通过身份验证。我录制的所有HTTP请求在播放过程中均失败,代码为 401 。
在此之前,我们的测试服务器同时使用Kerberos和NTLM进行身份验证,并且测试正常。直到本月,安全团队才将Kerberos强制为唯一安全性。
在JMeter命令提示符屏幕上,每次运行测试时都会显示:
[Krb5LoginModule]已将Krb5Principal MyUserName 添加到主题 成功提交
HTTP请求仍返回401
根据我的测试计划,我添加了:
-HTTP授权管理器
-HTTP请求默认值
-标头经理
-Cookie经理
授权存储在授权管理器中
|| ... URL ... || ---用户名-||密码|| -----域---- || ----领域----- ||机制||
|| ... URL ... || myUserName || *********** || COMDOMAIN || DEPT.COMPANY.COM || KERBEROS ||
我已经编辑了krb5.conf,如下所示:
[libdefaults] default_tkt_enctypes =省略
default_tgs_enctypes =省略
转发=省略
dns_lookup_kdc = true
dns_lookup_realm = true
udp_preference_limit = 1
default_realm = DEPT.COMPANY.COM
[领域]
DEPT.COMPANY.COM = {
kdc = TEST-SPACE.dev.company.com
admin_server = TEST-SPACE.dev.company.com
}
[domain_realm]
COMDOMAIN = DEPT.COMPANY.COM
kdc 和 admin_server 由安全人员提供。我无权访问服务器安全性。
编辑1: 有关此问题的更新。因此,我重新启用了kerberos凭证的提示,以手动将我的凭证输入到JMeter测试中并获得以下信息:
KinitOptions cache name is C:\Users\myadusername\krb5cc_MyADusername
LSA: Found Ticket
LSA: Made NewWeakGlobalRef
LSA: Found PrincipalName
LSA: Made NewWeakGlobalRef
LSA: Found DerValue
LSA: Made NewWeakGlobalRef
LSA: Found EncryptionKey
LSA: Made NewWeakGlobalRef
LSA: Found TicketFlags
LSA: Made NewWeakGlobalRef
LSA: Found KerberosTime
LSA: Made NewWeakGlobalRef
LSA: Found String
LSA: Made NewWeakGlobalRef
LSA: Found DerValue constructor
LSA: Found Ticket constructor
LSA: Found PrincipalName constructor
LSA: Found EncryptionKey constructor
LSA: Found TicketFlags constructor
LSA: Found KerberosTime constructor
LSA: Finished OnLoad processing
Acquire default native Credentials
Found no TGT's in LSA
Kerberos username [MyADusername]: myadusername
Kerberos password for myadusername:
KdcAccessibility: reset
KinitOptions cache name is C:\Users\myadusername\krb5cc_MyADusername
Acquire default native Credentials
Found no TGT's in LSA
边注::我查找了一些在线帮助,并在regedit中创建了一个名为allowtgtsessionkey的REG_SZ注册表,默认为1,但无济于事。
关于同一问题,我认为可能与 keytab 有关,但是我对keytab的了解有限。因此,我可以正常登录该网站,只是无法让JMeter通过Kerberos进行访问。