Скручиваемость с SSO user / pass - PullRequest
       0

Скручиваемость с SSO user / pass

0 голосов
/ 08 февраля 2019

Я пытаюсь добавить мониторинг на веб-сайт, чтобы проверить, работает ли он.

Когда я перехожу на https://yy-dev.zzz.com/home - он запрашивает у меня User / Pass для SSO в приложении.

Как мне это сделать, используя CURL или аналогичную утилиту командной строки?Как предоставить SSO пользователя / пароль?

Попытка автоматизировать тестирование ..

1 Ответ

0 голосов
/ 09 февраля 2019

если ваш веб-сайт поддерживает HTTP Basic authentication или HTTP Digest authentication или HTTP NTLM authentication, то у curl есть встроенная поддержка для входа в систему, например

curl -u name:passwd https://yy-dev.zzz.com/

, но подавляющее большинство веб-сайтов имеет собственный протокол входа в систему на основе http и не поддерживает ни одну из вышеупомянутых схем.некоторые веб-сайты облегчают вход через libcurl с использованием простых параметров HTTP Post, например, в php / libcurl:

<?php
$ch=curl_init();
curl_setopt_array($ch,array(
    CURLOPT_POST=>1,
    CURLOPT_COOKIEFILE=>'', // enables cookie handling, most websites use cookies for logins
    CURLOPT_POSTFIELDS=>array(
        'username'=>'whatever',
        'password'=>'whatever',
    ),
    CURLOPT_URL=>'https://yy-dev.zzz.com/login',
));
curl_exec($ch);

, в то время как многим сайтам требуется csrf-токен и действительный сеанс cookie перед разрешением входа, что-то вроде

<?php
$ch=curl_init();
curl_setopt_array($ch,array(
    CURLOPT_COOKIEFILE=>'', // enables cookie handling, most websites use cookies for logins
    CURLOPT_URL=>'https://yy-dev.zzz.com/login',
    CURLOPT_RETURNTRANSFER=>1
));
$html=curl_exec($ch);
$domd=@DOMDocument::loadHTML($html);
$csrf_token=$domd->getElementById("csrf_token")->getAttribute("value");
curl_setopt_array($ch,array(
    CURLOPT_POST=>1,
    CURLOPT_POSTFIELDS=>array(
        'username'=>'whatever',
        'password'=>'whatever',
        'csrf_token'=>$csrf_token
    ),
    CURLOPT_URL=>'https://yy-dev.zzz.com/login',
));
echo curl_exec($ch); // logged in!

... и некоторые веб-сайты делают это НЕОБЫЧНО СЛОЖНЫМ для входа в систему, например https://gmail.com, здесь 300 строк кода для ... только входа в gmail.com: https://gist.github.com/divinity76/544d7cadd3e88e057ea3504cb8b3bf7e

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...