【问题标题】:Jmeter Keycloak Authorization_codeJmeter Keycloak Authorization_code
【发布时间】:2022-01-04 13:07:38
【问题描述】:
【问题讨论】:
标签:
jmeter
keycloak
load-testing
blazemeter
【解决方案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 标头获取临时代码。