Аутентификация с помощью Invoke-WebRequest - PullRequest
1 голос
/ 17 марта 2019

Страница входа в систему выглядит следующим образом: https://login.procore.com/

Мне кажется, я близок к тому, чтобы заставить его работать, но столкнулся с кирпичной стеной из-за отсутствия понимания процедур входа в систему.Ниже приведен код без информации о входе в систему.

$r=Invoke-WebRequest https://login.procore.com/ -SessionVariable fb

$form = $r.Forms[0]

$form.Fields["session_email"] = "xxxxxxxxx"
$form.Fields["session_password"] = "xxxxxxxx"

$r=Invoke-WebRequest ('https://login.procore.com/' + $form.Action) -WebSession $fb -Method $form.Method  -Body $form.Fields 

Может ли кто-нибудь помочь мне понять, чего не хватает?Я заметил, что $form.Fields содержит пустое поле с именем: session_sso_target_url , но, честно говоря, понятия не имею, что это значит или как его использовать.

1 Ответ

0 голосов
/ 17 марта 2019

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

Я рискну предположить, что session_sso_target_url относится к федерации, которая семантически связана с единой регистрацией (SSO). В федерации приложение настроено для приема входов из другого домена входа. Очевидным примером в корпоративной среде является ADFS, но всякий раз, когда вы видите приложение, которое говорит Войти через Facebook или Войти через Google , это одно и то же. Федерация это большая тема. Смысл наличия целевого URL заключается в том, что браузер часто перенаправляется на провайдера идентификации (ADFS / FB / GOOG и т. Д.) С URL-адресом обратного вызова, на который браузер должен вернуться после проверки подлинности.

Достаточно сказать, что я подозреваю, что вам ничего не нужно делать с этим полем! И причина, по которой я это говорю, заключается в том, что я ударил по нему Фиддлером.

Ты должен знать о Фиддлере. Это бесплатный прокси-сервер отладки от Telerik. Я не связан с Telerik, но я обязан им часами сэкономленного времени при просмотре веб-страниц. (Это не единственный инструмент для работы, и если какой-либо модератор сочтет, что я нарушаю правила сайта, я буду рад санации этого сообщения.)

Сделайте это:

  • установить Fiddler
  • Настройте его на прослушивание 127: 0.0.1: что угодно и чтобы он был вашим системным прокси
  • в Сервис> Параметры> HTTPS, установите для него дешифрование HTTPS (это заменит все сертификаты автоматически сгенерированными самозаверяющими, поэтому не оставляйте этот режим запущенным, пока вы выполняете другие задачи)
  • Установите фильтры для включения только трафика * .procore.com
  • Войдите в свой браузер - теперь вы увидите веб-трафик на левой панели. Этот захваченный трафик является вашей базовой линией.
  • Выберите любой веб-запрос и посмотрите на вкладку «Инспекторы» в правой панели. Вы можете просмотреть Raw, Forms, Cookies и т. Д. Это дает низкоуровневое представление о том, что делает ваш клиент.
  • Запустите ваш фрагмент кода. Теперь вы можете сравнить различия между базовой линией и вашим кодом и скорректировать их соответствующим образом.
...