Чего мне не хватает в моей настройке JMeter / ADFS? - PullRequest
0 голосов
/ 03 января 2019

Мне не удается заставить JMeter получить токен авторизации из Azure AD в настройке федеративных служб Active Directory

В моей организации есть настройка ADFS с Azure AD.Я могу пройти процедуру входа в систему и получить файлы cookie, прошедшие проверку MSISAuth и MSISA.Насколько я понимаю, следующим шагом является получение «токена» для отправки с моим следующим ответом на приложение поставщика услуг.Когда я записываю с использованием JMeter, это делается с помощью 4 переменных с помощью перенаправления (code, id_token, state, session_state).Я считаю, что код - это FlowToken, session_state - это sessionId, а состояние - это переменная из предыдущего запроса, который я могу передать (называемое состояние).Тем не менее, я считаю, что «код» должен быть содержимым куки-файла с именем «ESTSWCTXFLOWTOKEN».Когда я запускаю поток через Fiddler, я вижу этот файл cookie.Однако, JMeter, похоже, не регистрирует этот файл cookie в отладочном сэмплере.Я попытался поиграть с политикой использования файлов cookie в JMeter (использовались стандартные настройки и netscape), но в любом случае я вижу другие файлы cookie, но не те, которые мне нужны.

Просматривая содержимое файла cookie ESTSWCTXFLOWTOKEN через Fiddler и Base64, расшифровывая их, я убежден, что содержимое авторизации находится в этом файле cookie, но JMeter, похоже, не получает этот файл cookie.

Дополнительные вещи, которые я пробовал, - это установка экстрактора Reg Ex по запросу, в котором cookie возвращается в Fiddler в «Заголовках ответа».

Любая помощь очень ценится.


Редактировать 1: Вот файлы cookie, записанные в Fiddler:

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 Cookies!

1 Ответ

0 голосов
/ 04 января 2019

Не думаю, что вы получите исчерпывающий ответ, поскольку ADFS может иметь несколько лиц , а именно:

, и ни один из них не может быть фактически записан и воспроизведен, по крайней мере, без выполнения корреляции. Вам необходимо определить базовую реализацию аутентификации для вашего приложения, и на основе этой информации настройте JMeter для авторизации, и инструкции будут другими.


Что касается самого вашего вопроса (JMeter не хранит определенные cookie-файлы в Менеджере файлов cookie), я могу представить 2 возможных варианта:

  1. Файл cookie поврежден, и JMeter просто отклоняет его из-за несоответствия. Если это так, у вас есть следующие 2 варианта:

  2. Файл cookie генерируется на стороне клиента (на самом деле он не приходит с сервера). Если это так - вам нужно будет создать cookie из этих code, id_token, state и session_state и кодировать его, используя, например, __ base64Encode () функцию (функция не часть дистрибутива JMeter, вам необходимо установить его с помощью JMeter Plugins Manager )

...