Я работаю над проектом, где они проходят аутентификацию через SAML от OKTA. Я успешно получил интеграцию, где SAMLResponse отправлен (через метод POST) на веб-сайт.Как получить ответ SAML от OKTA для тестирования модулей/интеграции
В настоящей моде TDD я начал с написания некоторых модульных тестов. В моих модульных тестах используется SAMLResponse (который кодируется Base64). Тем не менее, все мои модульные тесты работают, потому что SAMLResponse имеет только срок службы (истекает) в течение нескольких минут, мои тесты модулей прерываются через несколько минут.
Поэтому мне нужно периодически регистрироваться в OKTA, а затем использовать инструменты Chrome dev для отслеживания трафика, отправляемого на мой dev-сайт. Затем я копирую и вставляю SAMLResponse в свои модульные тесты и возвращаюсь к прохождению модульных тестов. Очевидно, что это не желательная ситуация.
Итак, мой вопрос: как я могу войти в Okta автоматическим способом (желательно на C#), чтобы получить SAMLResponse? Я предполагаю, что есть какой-то URL-адрес, с которым я могу отправить сообщение POST с именем пользователя и паролем и вернуть SAMLReponse. Все попытки моего Фиддлера попытаться понять, что требуется для общения, оставили меня разочарованным. Я ищу любое руководство, которое у вас может быть. Заранее спасибо.
Я не знаком с SAML, но из вашего вопроса я думаю, что вы либо тестируете на некорректном уровне, либо нуждаетесь в дальнейшей абстракции. Я бы увидел, что там, где вы обрабатываете ответ, не должно иметь значения в фактическом сообщении, но больше на содержании сообщения, то есть быть в состоянии подделать ответ, должен работать. Я бы никогда не ожидал, что единичный тест придется когда-либо вызывать внешнюю функцию, и он будет вызывать сигналы тревоги, если он должен был войти в внешнее приложение. –
Согласовано. Это действительно становится интеграционным тестом. Если SAMLResponses не истекает, это действительно может быть единичным тестом, но, согласно Okta, это не вариант. Учитывая сложность интеграции SAML, мы полагаемся на наши тесты для поиска проблем с конфигурацией на еженедельной основе. –
Относительно вашего комментария о возможности «подделать» ответ. Это было то, что я изначально пытался, однако ответы (которые являются только строками Base 64) содержат информацию, подписанную сертификатом. Поэтому, если вы измените что-либо ответ, проверка не завершится. Я знаю, что я нарушаю некоторые практические рекомендации по единичному тестированию, но я также поддерживаю SAML и OKTA, но все равно не собираюсь сдаваться на интеграционных тестах, поскольку я получаю от них такую большую ценность ... просто хочу, чтобы они были автоматизирован. –