【问题标题】:What am I missing with my JMeter/ADFS setup?我的 JMeter/ADFS 设置缺少什么?
【发布时间】:2019-05-30 10:04:56
【问题描述】:

我无法让 JMeter 在 Active Directory 联合服务设置中从 Azure AD 获取授权令牌

我的组织使用 Azure AD 设置了 ADFS。我能够完成登录过程并获得 MSISAuth 和 MSISAuthenticated cookie。据我了解,下一步是获取一个“令牌”,以便在我对服务提供商应用程序的下一个响应中提交。当我使用 JMeter 录制时,这似乎是通过重定向使用 4 个变量(代码、id_token、状态、会话状态)来完成的。我相信代码是 FlowToken,session_state 是 sessionId,状态是我可以传入的先前请求的变量(称为状态)。但是,我认为“代码”应该是名为“ESTSWCTXFLOWTOKEN”的 cookie 的内容。当我通过 Fiddler 运行流程时,我可以看到这个 cookie。但是,JMeter 似乎没有在调试采样器中注册此 cookie。我曾尝试使用 JMeter 中的 Cookie 策略(尝试的设置是标准和 netscape),但无论哪种情况,我都能看到其他 cookie,但看不到我正在寻找的那个。

通过 Fiddler 和 Base64 解码查看 ESTSWCTXFLOWTOKEN cookie 的内容,我确信授权内容在这个 cookie 中,但是 JMeter 似乎没有收到这个 cookie。

我尝试过的其他事情是在 Fiddler 中的“响应标头”上返回 cookie 的请求上设置 Reg Ex 提取器。

非常感谢任何帮助。


编辑 1:以下是 Fiddler 中记录的 cookie:

Cookie: ESTSSSOTILES=1;
 AADSSOTILES=1;
 wlidperf=FR=L&ST=1539195933861;
 stsservicecookie=ests;
 AADSSO=NA|NoExtension;
 ESTSSC=00;
 esctx=AQABAAAAAAC5una0EUFgTIF8ElaxtWjTTDkq2CH5PgAP0je6-RuVjdH_iStgCskVhi_rErqrj1tZ2uUin7y1uBwf2Gu2bPMwYuaaL03c-kfoiTfjyfNwfIFATiyvUgtU_4x-R0ugEbKddKU5pFMuoMyw4oiYDqTmMsSLd_PWbJrYhOq3FGv8srtpG3SC2cipDpBhn1a52rEgAA;
 CkTst=G1546370175959;
CCState=Q2xzS1MyRnVhM1Z5TG1Sb1lYZGhiaTFqYjI1MGNtRmpkRzl5UUdSemN5NWpZUzVuYjNaOFlYQndPak5sWVdWbVlqYzRMVFkwWm1VdE5HUXlZeTFpTkdJMkxUQTRaRE15TjJVeFpqTm1OQklCQUJvSkNVRnhaRzVpY3RaSUVoSUtFRTZtYWhsbzhmQkJteGZvM2YxRVFnMGFDUWxCenpRaFkzTFdTQT09;
 x-ms-gateway-slice=prod;
 SignInStateCookie=CAQABAAIAAAC5una0EUFgTIF8ElaxtWjTVF9AufyV08LEZ2xQxBiACiowK6kS3t9ij-1TgW1ZxKKWb-RQa60RKNOJxlPY1kuDB1daVGkjSy0FOWTXt5l74CAA;
 ESTSAUTHLIGHT=+;
 ESTSLOGOUTREDIRECT=MDtOQTtUcnVl;
 ESTSAUTHPERSISTENT=AQABAAQAAAC5una0EUFgTIF8ElaxtWjTzpprE-kUh2_NGHt3R3PUdiQLdju2ib1Zrp5m9o2lCrcNH8rIXzaaRQLsbrohpBFtGMsr8S02Szhu254f7dg1StCZWPKW-AoDMvoQ-uNCLzjuiEh_jRA7FekpQnpVfgwudXIzybINM19iHSxRBgOUpfwUMCr8OPOqXC2he_Q1q_bmd0OGoRbh9-L3QYw-aISL52cOhJAEDXKru_BprqoDUhXArAQ-UG4Vrkqzlzylz0F__8Pz__CYio4GmyFjDeMv4ak1l6znB_5YELZXsvYwGM-v27ynQ04FMjmGsK8G2sVC4A43aUiomsKtaTYVz5Xk1GgZeLnsKDfA-nHF1nmx85FZOX-CNI6IoQf30xx7ulcrpVW3myNtkhEA-49RAlkc03eQnxWcmNyYZY7CBoXHamor0Lftf4ceoWgQsWdWcNFvmN3J-duWSJ1NMD_gggclFZhqvzfNPk93-Q08q9WuEZE2uDJEddHm-Q9KnXhu0BsiiNCLhaIh7-mpGUBTJ0022QWdz2fJihNr9N5tegbAs7mKspDw6EmGOHsincVYuXSb35l669bWI7QcKyBDF-ZKCiowPrEg9aLaxx3MkF5pW8asiUEJiATWmyiirdQIPI3QXsp3Zqg8rnVckrpK5AAibmyqDa8g-QO_VcVv9ud7ZNrvBn6THnSblhITa9JEfDwtLmrk14-lN41RUHxZBczHjPws6IQs4cKlkSdc2B7_AFLefWk6u6eh-rzFLo29mAha6KONol57C0vYifIPrPlUS05GXdYUwLehrPfTMbfcmKYKQI-7lcR8LUFA3FFywnNi7e-p2WqjVlHaaunbgs7tUm0IDaMgJDcqpyaYNjF67pq1oXBZhuu3CyA2QFdwVVsgACAAQAAQAgAA;
 ESTSAUTH=AQABAAQAAAC5una0EUFgTIF8ElaxtWjTZ-qXDh00r1SNg9EnuNoKCV9INgj2RokuKa-kB7FuKmFt38i57Ul5C6ug4S0T6DwlsYjQgyi3iXbabJpLS-le29w5JMMzjNS9hc_TgJlyHCHuu0xkVKKyN7BZTTN-zgkBfJfW-8nDwfDM3FRLUWNQ1cKjYz17Q-dfvb0UNEU-_uIpsE4ejvQGEEbLugUax_uBZXIZYGXWPqRHB5hqbM-J0yAAIABAACAAAAA;
 buid=AQABAAEAAAC5una0EUFgTIF8ElaxtWjTFwK_PjmSKn6e7dFnjsY0ExcPKgwr76peeUbi0x9Mo4qu2WmVuQEo3JnQzBRdBmU-kEMxLQABLZnpXbx9w4zWzINPYAsyb2aNtAl_1rI_0LPlU4PNRMs9Qp75tJrpcm2NO5uBas5kUWz90czXmqrb5DaQX_insNi_QEFgFg93ZncgAA;
 fpc=ATuJtRJ2OaFJuQS3QicZ6etdyZR6AQAUbJAwY3LWCA;
 ESTSWCTXFLOWTOKEN=AQABAAEAAAC5una0EUFgTIF8ElaxtWjTl2xrzdxreg0klb7F7e5-ZnQPSWLczT4ujAuKCsyn-7-E_ArakdCZFQaMR4-RXDXbfXjOXC45fPPrR-aANusp8ytnDJSRUCSMEr80hwCbD2Yrp72LYfHZGRytvkvU5AxubKmZMooYp9sNIOnuyzfTAQ34E4ytOdbDFkJ4HYfec2_5coDrE0WMNPuveo8Au0haqqbYqM7PVqdkaafH72Og3jApeY5N_pN_sh3KauaiiJOHWnE8WrJmEQl-FF2SEux2bjQJzCwnzzNg_ZF4wc7eMtUdpfrm6JxMT1lLdAokSNXLHLEW_0VivncRwkjdZHrZB3Iu-6MCGZtNZVXwO8sD6c5I5l83bHD24j8a_AunW8qkJgb142mSCcBE0v0mBDUBIAA

同样的请求,来自 JMeter: 0 个 Cookie!

【问题讨论】:

    标签: jmeter adfs


    【解决方案1】:

    我不认为你会像ADFS can have many faces那样得到一个全面的答案,也就是说:

    并且至少在不执行关联的情况下,它们都不能被实际记录和回放。您需要确定应用程序的底层身份验证实现,并根据此信息配置 JMeter 以进行授权,说明会有所不同。


    关于您的问题本身(JMeter 不会在 Cookie 管理器中存储某些 cookie),我可以想到 2 个可能的选项:

    1. cookie 格式不正确,JMeter 只是因为某些不一致而拒绝它。如果是这种情况,您有接下来的 2 个变体:

      • 提出产品问题以在应用程序端进行修复。可以通过你的项目issue tracking system

      • 告诉 JMeter 不要检查 cookie 并“信任”它们,无论 standard compliance 是什么。可以通过将下一行添加到 user.properties 文件

        来完成
         CookieManager.check.cookies=false
        
        JMeter restart will be required to pick the property up. See [HTTP Cookie Manager Advanced Usage - A Guide][7] article to learn more about managing cookies in JMeter tests. 
        
    2. cookie 是在 客户端 端生成的(它并不是真正来自服务器)。如果是这种情况 - 您将不得不从这些 codeid_tokenstatesession_state 生成 cookie 并使用 __base64Encode() function 对其进行编码(该函数不是 JMeter 分发的一部分,您将需要使用JMeter Plugins Manager 安装它)

    【讨论】:

      猜你喜欢
      • 2013-10-04
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多