JMeter:auth2.0认证流程(B2C架构)

Posted

技术标签:

【中文标题】JMeter:auth2.0认证流程(B2C架构)【英文标题】:JMeter: auth2.0 Authentication Process (B2C Architecture) 【发布时间】:2020-12-06 22:39:39 【问题描述】:

步骤:

    点击网站 - 它被重定向到包含动态参数的 URL,例如状态、随机数和客户端请求 ID。

因此,在 JMeter 中,我无法获取这些值,因为它们直接来自 HTTP 请求。 任何想法,如何获取它?

    单击使用凭据登录时,正在发生身份验证过程,该过程正在生成令牌 ID。 然后在下一个请求中,发生重定向并实现相同类型的 URL(如步骤 1 中)。再次传递相同的参数。 并通过此请求生成访问令牌。

我无法获取这些参数(随机数、状态、客户端请求 ID)。有什么我们可以做的吗?

【问题讨论】:

【参考方案1】:

According to Microsoft,client-request-id 是可选的(所以你可以不使用它),如果我读到这个权限是由客户端生成的。所以你也许可以generate a random GUID in JMeter。

【讨论】:

【参考方案2】:

是的,你是对的,但就我而言,我没有得到任何子采样器。 这就是麻烦所在! 此外,这些参数来自托管网站的第 3 方(不在开发人员手中).. 我正在做的整个过程是为了负载测试。 那么,您想为此添加什么?

【讨论】:

你有没有得到这个答案...?我遇到了同样的问题。 @shahbaz 是的,我将那些动态变化的参数留空。在发送请求时,参数会在服务器级别更新,从而获取访问令牌。虽然您不会在请求部分看到这些值是什么。【参考方案3】:

如果您将redirected 指向包含您要查找的参数的 URL,您应该能够从 sub-sampler 捕获它们

使用合适的Post-Processor,例如Regular Expression Extractor

还有一些像消费者密钥这样的值是静态的,永远不会改变,像nonce这样的一些值是随机的

如果您不需要对 OAuth 登录挑战本身进行负载测试,您可以要求开发人员或管理员为您提供一个永久令牌,您可以使用 HTTP Header Manager 在 Authorization 标头中发送该令牌

【讨论】:

以上是关于JMeter:auth2.0认证流程(B2C架构)的主要内容,如果未能解决你的问题,请参考以下文章

spring security 和auth2.0的区别

Jmeter学习-性能测试准备工作

C# GCP auth2.0 403 不匹配重定向

微信Auth2.0授权的时候出现两次回调

B2C电商支付中心产品架构详解

无头认证Azure AD b2c