在Active Directory联合服务设置中,我无法让JMeter从Azure AD获得授权令牌
我的组织具有使用Azure AD的ADFS设置。我可以完成登录过程并获取MSISAuth和MSISAuthenticated cookie。以我的理解,下一步是获取一个“令牌”,并将其与我对服务提供商应用程序的下一个答复一起提交。当我使用JMeter记录时,这似乎是通过重定向(代码,id_token,状态,会话状态)使用4个变量完成的。我相信代码是FlowToken,session_state是sessionId,状态是我可以传递的先前请求中的变量(称为状态)。但是,我认为“代码”应该是名为“ ESTSWCTXFLOWTOKEN”的cookie的内容。当我在Fiddler中运行流程时,我能够看到此cookie。但是,JMeter似乎并未在调试采样器中注册此cookie。我已经尝试过在JMeter中使用Cookie策略(尝试的设置是标准和netscape),但是无论哪种情况,我都可以看到其他cookie,但找不到我想要的cookie。
通过Fiddler和Base64浏览ESTSWCTXFLOWTOKEN cookie的内容,我确信授权内容在此cookie中,但是JMeter似乎没有收到此cookie。
我尝试过的其他事情是在请求中设置Reg Ex提取器,以在Fiddler的“响应标题”中返回cookie。
非常感谢您的帮助。
编辑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个饼干!
答案 0 :(得分:0)
我不认为您会得到ADFS can have many faces这样的全面答案:
,并且至少在不执行相关操作的情况下,它们实际上都无法记录和重放。您需要确定应用程序的底层身份验证实现,然后根据此信息配置JMeter进行授权,说明将有所不同。
关于您自己的问题(JMeter不在Cookie管理器中存储某些cookie),我可以想到2种可能的选择:
cookie格式错误,并且由于某些不一致,JMeter只是拒绝了它。如果是这种情况,您可以使用以下两种变体:
告诉JMeter不要检查cookie,而无论standard compliance是如何“信任”它们。可以通过在 user.properties 文件
中添加下一行来完成CookieManager.check.cookies=false
需要重新启动JMeter才能拾取该属性。请参阅HTTP Cookie Manager Advanced Usage - A Guide文章,以了解有关在JMeter测试中管理cookie的更多信息。
该Cookie是在客户端端生成的(它并非真正来自服务器)。在这种情况下-您将必须根据这些code
,id_token
,state
和session_state
生成Cookie,并使用__base64Encode() function(函数不是JMeter发行版的一部分,您需要使用JMeter Plugins Manager)