Я работаю над сайтом типа приборной панели. У нас есть страница входа, реализованная в php, которая аутентифицируется на сервере LDAP. У нас также есть страница Check_MK, которая имеет свой собственный диалог входа в систему, который проходит проверку подлинности на том же сервере LDAP. Я хотел бы, чтобы у пользователя не было необходимости повторно вводить свои учетные данные в диалоговое окно входа Check_MK. Я бы предпочел, чтобы учетные данные, введенные на нашу страницу входа php, были переданы Check_MK, чтобы можно было выполнить аутентификацию без взаимодействия с пользователем. Это возможно? Если да, то как мне это сделать?Как реализовать возможность единого входа с помощью Check_MK?
Редактировать для тех, кто отметил это слишком широк, объясните, пожалуйста.
Я был в состоянии получить автоматический вход в систему с check_mk, передавая имя пользователя и пароль в через URL, как описано на этом сайте: http://stichl.at/2014/04/check_mk-multisite-auto-login/
Я не думаю, что это будет жизнеспособным вариантом для меня, хотя, как кажется чтобы быть небезопасным, как подробно описано в этом вопросе Is it secure to pass login credentials as plain text in an HTTPS URL?
Хотя с открытым исходным кодом я не могу изменить файл checkMK login.py из-за его лицензии GNU. Помимо передачи учетных данных через URL-адрес в виде обычного текста, как я могу использовать учетные данные, предоставленные на странице входа в php, для автоматического входа на страницу check_MK?
Ниже приведен код php/html, где я открываю экран регистрации Check_MK.
<script type="text/javascript">
var version = global.dashboard_version;
console.log("version = " + version);
var url = global.ips[version+"_nagios_iframe"];
var suffix = <?php echo "'".
'&_username='.
$_SESSION['username'].
'&_password='.
$_SESSION['password'].
"&_login=1'";?>;
console.log("suffix = "+suffix);
url = url + suffix;
console.log("url = "+url);
document.getElementById("nagiosiframe").src = url;
</script>
код Логин check_mk можно найти здесь: https://github.com/sileht/check_mk/blob/master/web/htdocs/login.py
Соответствующая функция называется do_login и находится на линии 147.
В частности, я не знаю, как общаться значения мои переменные сеанса (имя пользователя и пароль) в код login.py безопасным способом.
Это мое первое знакомство с любым из этих языков и технологий. Даже предложения по поисковым запросам будут оценены.
_Что такое LDAP? _ –
Этот вопрос слишком широк, потому что вы не указали, где в вашем конкретном коде вы застряли.Stack Overflow предназначен для обеспечения конкретных решений конкретных проблем, а не для написания целых реализаций. – mhlester
Вы должны быть защищены * если * вы отправляете POST через https, когда следуете инструкциям http://stichl.at/2014/04/check_mk-multisite-auto-login/. Исходная точка с использованием jquery: '$ .post (" https: // someebhost/site/check_mk/", {" _username ":" user "," _password ":" pass "," _login ": 1}); ' –