从JMeter访问网站时使用Active Directory角色

时间:2017-04-26 22:14:59

标签: jmeter

在我们公司,我们正在测试的网络应用程序使用分配给用户的活动目录角色来访问网站。

修改 我忘记提到的重要信息是,在访问网站时,我不会提示输入用户名和密码。只有在我的用户配置文件中分配了正确的Active Directory角色时,才会显示该网站。

例如,

  1. 以我自己的身份打开IE - 能够访问该网站。
  2. 打开IE作为服务帐户(具有所需的Active Directory角色) - 能够访问该网站。
  3. 在我的项目之外以不同的用户身份打开IE - 无法访问该网站。
  4. 我已经尝试过(怀疑地,绝望地让它工作)HTTP授权管理器中的基本/ Kerberos授权,甚至运行JMeter作为该服务帐户仍然没有运气。我一直得到以下

    Thread Name: Users 1-1
    Sample Start: 2017-04-26 17:08:18 CDT
    Load time: 83
    Connect Time: 13
    Latency: 83
    Size in bytes: 438
    Sent bytes:136
    Headers size in bytes: 243
    Body size in bytes: 195
    Sample Count: 1
    Error Count: 1
    Data type ("text"|"bin"|""): text
    Response code: 401
    Response message: Unauthorized
    
    Response headers:
    HTTP/1.1 401 Unauthorized
    Server: nginx/1.10.1
    Date: Wed, 26 Apr 2017 22:08:18 GMT
    Content-Type: text/html
    Content-Length: 195
    Connection: keep-alive
    WWW-Authenticate: Negotiate
    X-Frame-Options: deny
    X-Content-Type-Options: nosniff
    
    
    HTTPSampleResult fields:
    ContentType: text/html
    DataEncoding: null
    

    我只是想知道这里是否有任何人让JMeter在类似场景中工作/如果有人能指出我正确的方向来克服这个障碍。

    感谢所有人的帮助。

    HTTP Authorization Manager Conf

1 个答案:

答案 0 :(得分:1)

您需要在应用程序中确定身份验证的确切实现。

鉴于您收到WWW-Authenticate: Negotiate - 这绝对不是基本HTTP身份验证。

Negotiate可能代表NTLM或代表Kerberos(或者在某些情况下代表两者,即如果Kerberos不成功则会退回到NTLM)并且JMeter需要是为这些方案配置不同。

例如对于NTLM,您需要在HTTP Authorization Manager中仅提供凭据和域,并且对于Kerberos,您需要填充Realm并在 jaas下设置Kerberos设置(KDC和登录配置) .conf krb5.conf 文件

有关更多信息和示例配置,请参阅Windows Authentication with Apache JMeter文章。