是否有人使用SPNEGO(协商)和Kerberos针对Windows ADFS / SSO通过Jmeter成功进行了身份验证?

时间:2019-02-11 20:43:02

标签: jmeter kerberos

或者,有人确定不能做到这一点吗?

我正在尝试使用Jmeter对使用OKTA Oauth2进行授权但使用ADFS / SSO进行身份验证的站点进行负载测试。看来,身份验证方案是带有KERBEROS的SPNEGO,它应该由HttpClient支持。我对OKTA部分没有任何问题,但是无法让Jmeter对SSO服务器进行身份验证。

我有一个HTTP Cookie管理器以及一个具有一些常见请求标头值的HTTP标头管理器。当需要其他请求标头值时,我将单独的HTTP标头管理器与HTTP请求采样器一起使用。构造请求标头没有问题(下面的步骤6中有一个例外),并且cookie均已正确处理。我正在为HTTP请求采样器使用默认的HttpClient4实现。我仅在以下指示的地方使用HTTP授权管理器。我们的安全团队提供了用户和密码,以及相关的密钥表,以及领域,域,KDC和管理服务器。已配置krb5.conf和jaas.conf并指定了它们的位置。我没有任何Java异常。

Jmeter log extract:
            DEBUG o.a.h.i.c.TargetAuthenticationStrategy: Authentication schemes in the order of preference: [Negotiate, Kerberos, NTLM, CredSSP, Digest, Basic]
        DEBUG o.a.h.i.c.TargetAuthenticationStrategy: Challenge for Kerberos authentication scheme not available
        DEBUG o.a.h.i.c.TargetAuthenticationStrategy: Challenge for CredSSP authentication scheme not available
        DEBUG o.a.h.i.c.TargetAuthenticationStrategy: Challenge for Digest authentication scheme 

问题是Jmeter无法响应服务器执行多步身份验证过程的任何挑战。

1 个答案:

答案 0 :(得分:0)

假设配置正确,这应该不是问题。适用与正常负载测试相同的规则:JMeter必须发送与真实浏览器相同的网络流量模式。您可以使用Wireshark之类的嗅探工具再次检查它。

仔细检查您是否在 user.properties 文件中设置了以下Kerberos-related JMeter properties

kerberos.spnego.delegate_cred=true
kerberos.spnego.strip_port=false
kerberos_jaas_application=name_of_your_application_from_the_jaas_conf

以防万一将下一行添加到 system.properties 文件:

sun.security.krb5.debug=true

参考文献: