我在仪表板类型网站上工作。我们在PHP中实现了一个针对LDAP服务器进行身份验证的登录页面。我们还有一个Check_MK页面,该页面具有自己的登录对话框,可以针对同一LDAP服务器进行身份验证。我希望用户不必将其凭据重新输入到check_mk登录对话框中。我希望将输入到我们的PHP登录页面的凭据传递到check_mk,以便可以在没有用户交互的情况下进行身份验证。这可能吗?如果是这样,我该怎么办?
编辑对于那些将其标记过的人来说,请解释一下。
我能够通过将用户名和密码传递到本网站上所述的用户名和密码来自动登录:http://stichl.at/2014/04/check_mk-multisite-auto-auto-auto-login/>我认为这对我来说不是一个可行的选择,因为这似乎是不安全的,因为这个问题中详细介绍的是,将登录凭据作为https url中的纯文本传递?
尽管开源,但由于其GNU许可证,我无法修改checkmk login.py文件。除了通过纯文本通过URL传递凭据,我如何使用提供给我的PHP登录页面的凭据自动登录到check_mk页面?
以下是我打开check_mk登录屏幕的PHP/HTML代码。
<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/web/htdocs/login.py.py
相关功能称为do_login,在第147行。
特别是,我不知道如何以安全的方式将会话变量(用户名和密码)的值传达给登录代码。
这是我第一次接触这些语言和技术中的任何一种。甚至搜索术语建议也将不胜感激。
justin,
由于您无法修改check_mk页面的代码,因此必须将凭据传递给它。如果没有这种限制,那么有许多安全的方法可以这样做。
现在有了这个限制,这是我过去使用的一种选择,可以为您工作。
step1。在您的PHP代码中,您可以访问原始密码...(保持安全存储)第2步。在交易中(全部或不执行以下操作) A。将该特定用户的LDAP中的密码设置为您刚刚生成的随机密码 b。将密码传递到该check_mk页面 C。身份验证完成后,从您的PHP页面上,将LDAP密码设置回原始密码。
这样,您将不会传递真实密码,并且还将在PHP和Check_MK页面之间完成单个登录。
如果您可以修改check_mk,我会给您其他答案。让我知道这个是否奏效。