Задания службы автоматизации Azure, нарушающие запросы REST приложения, расположенного на виртуальной машине

У меня есть приложение (VBS), которое извлекает данные со стороннего веб-сайта через запросы REST xmlhttp.

Первый вызов REST этого приложения относится к URL-адресу для входа, который также возвращает файл cookie JSESSIONID ('Set-Cookie: JSESSIONID=7XYZD; Path=/; Secure; HttpOnly'). Вызываемый URL-адрес: 'https://www.bullionvault.com/secure/j_security_check?j_username=XXX&j_password=YYY'.

Второй запрос, для которого мне нужно войти в систему, извлекает актуальную информацию с другого URL-адреса этого веб-сайта, возвращая данные в виде ответа XML-документа в виде '.responseXML'. . Этот поток отлично работает, если я запускаю приложение во время работы на виртуальной машине (rdp) или локально с моего ноутбука.

Теперь, когда я использую задание Azure Automation для запуска того же самого приложения на виртуальной машине, второй запрос (данные) больше не возвращает ожидаемый XML-документ; Я получаю «200 OK», но затем (бесполезная) страница входа на сайт в виде документа HTTP в виде «.responseText»; '.responseXML' пуст.

Похоже, что использование задания службы автоматизации Azure препятствует отправке JSESSIONID обратно на сервер REST при выполнении запроса данных. Следовательно, сервер больше не распознает меня и возвращает мне свою страницу входа. Обратите внимание, что веб-браузер явно не задействован.

Вопрос: Правильно ли мое подозрение, что использование службы автоматизации Azure нарушает работу приложения? и как решить эту проблему?


person Woody Chan    schedule 19.01.2020    source источник
comment
Обратите внимание, что когда я запускаю одно и то же приложение с помощью задания учетной записи службы автоматизации Azure, файлы cookie, такие как «Set-Cookie: unitOfWeight=KG; Path=/' больше не используется в заголовках ответов запроса на вход. Последующий запрос данных xmlhttp завершается ошибкой; вместо ожидаемых данных XML я получаю html страницы входа в систему как запрос responseText. Кажется, что файл cookie JSESSIONID был отфильтрован. Проблема, по-видимому, заключается в использовании принципала службы AAC.   -  person Woody Chan    schedule 29.02.2020


Ответы (1)


Если вы используете настройку типа «песочница» вместо рабочего процесса hybird для выполнения, тогда, поскольку «песочница» является ограниченной версией ОС Windows, и поведение пользователя, такое как файлы cookie и конфигурация сети, могут отличаться, поэтому я бы предложил попробовать гибридного рабочего ( который по умолчанию запускается в контексте локальной системы), чтобы увидеть, сможете ли вы добиться более четкого поведения.

person KrishnaG-MSFT    schedule 25.02.2020
comment
песочница? - код с вызовом REST выполняется на Win VM. Кроме того, его нужно запускать через учетную запись автоматизации, а не локально или гибридно — какой смысл в этом тестировать? Может быть, это проблема сети/безопасности, из-за которой трафик http/REST несколько фильтруется, если он работает под учетной записью службы автоматизации Azure? - person Woody Chan; 29.02.2020