Я пытаюсь создать портал, чтобы пользователи использовали единый вход для доступа ко всем службам в компании, в которой я работаю.
Моя цель состоит в том, чтобы пользователи заходили на мой портал, после чего они будут автоматически входить на все веб-сайты нашей компании, и им нужно будет всего лишь щелкнуть значок веб-сайта, чтобы получить к нему доступ без необходимости входа. их учетные данные каждый раз, мы используем Active Directory для проверки подлинности на всех этих веб-сайтах.
Я проверил форму входа в систему для каждого веб-сайта и получил URL-адреса сценариев входа в систему вместе с именами переменных полей имени пользователя и пароля, затем я попытался отправить запросы POST к этим сценариям, используя cURL в PHP с учетными данными в Опция "CURLOPT_POSTFIELDS".
$cookie_file_path = getcwd() . '/cookie.txt';
$agent = $_SERVER['HTTP_USER_AGENT'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://example.com/login.php');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$loginpage_html = curl_exec ($ch);
curl_close ($ch);
$CREDENTIALS = "username=test&password=test";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://example.com/login.php');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$CREDENTIALS);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_REFERER, 'http://example.com/login.php');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$logon_result = curl_exec ($ch);
echo $logon_result;
Токовый выход:
Пользователи автоматически входят в систему на всех веб-сайтах, когда они входят в мой портал, но при попытке навигации похоже, что они не вошли в систему в первую очередь, как если бы сеанс был разрушен, даже если сначала он показывает, что вы вошли в систему. в.
Ожидаемый результат:
Пользователи автоматически регистрируются на всех веб-сайтах при входе на мой портал и могут получить доступ к этим веб-сайтам, как если бы они обычно входили в систему.
И, как новичок, я хочу спросить, действительно ли это хороший способ достижения единого входа в PHP и Active Directory или есть лучший способ сделать это.
Спасибо.