Microsoft 身份验证“login.microsoftonline.com/kmsi”请求响应 400:JMeter 中的错误请求

问题描述 投票:0回答:1

通过将来自 Firefox 的请求保存为 .har 来保存绕过 Microsoft 身份验证所需的请求,然后在 JMeter 中处理动态值,以下所有请求均成功通过并返回所需的值

我尝试通过提取登录请求中最终检索到的动态值来传递这些值,如下面的屏幕截图所示

image demonstrating that the values extracted from the login request get passed to the kmsi request

另一方面,执行脚本后,kmsi 请求返回响应 400:错误的请求,而从我的角度来看,发送的请求表单与 Firefox 网络面板上加载的请求表单没有任何区别,请检查下图

Image demonstrating request body of the kmsi api that return 400 : bad request

预期结果是 kmsi 请求应返回 "SAMLResponse""RelayState" 的值以传递给 /samlauthn/ api

kmsi api request headers

请帮助 /kmsi 请求产生此错误请求的原因可能是什么

authentication jmeter performance-testing load-testing
1个回答
0
投票
  1. 嗯,首先我可以看到记录的请求发送至
    https://login.microsoftonline.com/68283f3b-8487-4c86-adb3-a5228f18b893/login
    ,而您的请求针对的是
    https://login.microsoftonline.com/login
    。您可能想先看看这个差异。
  2. 我不确定这个
    68283f3b-8487-4c86-adb3-a5228f18b893
    家伙是静态的还是动态的,在后一种情况下,您还需要将其关联起来并确保记录的值在Referer标头中被替换
  3. 您没有费心提供浏览器开发工具的网络选项卡中的信息,也没有提供浏览器和JMeter从嗅探器工具发送的请求的比较,因此我们无法提供全面的帮助,但有一件事是显而易见的: HTTP 状态 400 表示“错误请求”,并且由于缺少或未正确实现相关性,请求是“错误”。可能是相关值需要进行 URL 编码 或以某种方式解码,或者您没有完全提取它们或类似的情况。
© www.soinside.com 2019 - 2024. All rights reserved.