【问题标题】:Jmeter Keycloak Authorization_codeJmeter Keycloak Authorization_code
【发布时间】:2022-01-04 13:07:38
【问题描述】:

我目前正在尝试使用 keycloak 授权对网站进行负载测试。 问题是我在之前的 https 请求中的任何地方都找不到授权码,所以我无法使用正则表达式提取器来抓取它并将其转换为动态变量。那么如何将其配置为动态的呢? the auhorization code as it was recorded with blazemeter

我已经把session_code、tab_id和executive转成动态变量了,但是还是返回"{"error":"invalid_grant","error_description":"Code not valid"}"

【问题讨论】:

    标签: jmeter keycloak load-testing blazemeter


    【解决方案1】:

    根据Authorization Code Flow:

    1. 浏览器访问应用程序。应用程序注意到用户未登录,因此它将浏览器重定向到 Keycloak 以进行身份​​验证。应用程序在此浏览器重定向中将回调 URL(重定向 URL)作为查询参数传递,Keycloak 在完成身份验证时将使用该参数。
    2. Keycloak 对用户进行身份验证并创建一个一次性的、非常短暂的临时代码。 Keycloak 使用之前提供的回调 URL 重定向回应用程序,并在回调 URL 中另外添加临时代码作为查询参数。
    3. 应用程序提取临时代码并对 Keycloak 进行后台带外 REST 调用,以将代码交换为身份、访问和刷新令牌。一旦这个临时代码被使用过一次来获得令牌,它就不能再被使用了。这可以防止潜在的重放攻击。

    我的期望是您在任何地方都看不到代码,因为代码已通过 redirect URL 从 keycloak 传递到应用程序。

    因此,与其要求 keycloak 使用临时代码将重定向发送回应用程序,不如要求它发送请求到 JMeter 并在请求到达时通过 ie HTTP Mirror Server 捕获它JMeter 你应该能够使用Regular Expression Extractor or Boundary Extractor 从Location 标头获取临时代码。

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 2023-01-14
      • 2019-12-07
      • 2019-01-24
      • 2015-01-08
      • 2017-12-10
      • 1970-01-01
      • 2022-06-22
      • 2020-06-24
      相关资源
      最近更新 更多