Jmeter Keycloak Authorization_code

Posted

技术标签:

【中文标题】Jmeter 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""

【问题讨论】:

【参考方案1】:

根据Authorization Code Flow:

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

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

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

【讨论】:

以上是关于Jmeter Keycloak Authorization_code的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter Keycloak Authorization_code

Keycloak cookie:KEYCLOAK_SESSION、Oauth_token_request_state、KEYCLOAK_IDENTITY

Keycloak 直接访问授权在 keycloak userinfo 端点上无效

我应该明确验证 Keycloak 令牌还是由 Keycloak 适配器完成?

keycloak 到 keycloak 数据同步

Keycloak:使用 keycloak-admin 为用户生成访问令牌