Jus*_*man 7 php ldap single-sign-on check-mk
我正在一个仪表板类型的网站上工作.我们在php中实现了一个登录页面,该页面针对LDAP服务器进行身份验证.我们还有一个Check_MK页面,它有自己的登录对话框,可以针对同一个LDAP服务器进行身份验证.我希望用户不必在Check_MK登录对话框中重新输入他们的凭据.我希望输入到我们的php登录页面的凭据可以传递给Check_MK,这样就可以在没有用户交互的情况下完成身份验证.这可能吗?如果是这样,我该怎么办?
为那些标记为过宽的人编辑,请解释.
通过在本网站上描述的网址传递用户名和密码,我可以通过check_MK自动登录:http://stichl.at/2014/04/check_mk-multisite-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>
Run Code Online (Sandbox Code Playgroud)
可在此处找到Check_MK登录代码:https://github.com/sileht/check_mk/blob/master/web/htdocs/login.py
相关函数称为do_login,位于第147行.
具体来说,我不知道如何以安全的方式将我的会话变量(用户名和密码)的值传递给login.py代码.
这是我第一次接触这些语言和技术.即使是搜索术语建议也会受到赞赏.
小智 1
贾斯汀,
由于您无法修改 check_mk 页面的代码,因此您必须将凭据传递给它。如果没有这种限制,那么有许多安全的方法可以做到这一点。
现在有了这个限制,这是我过去使用过的一个选项,可以为您工作。
步骤1。在您的 PHP 代码中,您可以访问原始密码...(安全存储)第 2 步。在事务内(全部或无,执行以下操作)将 LDAP 中该特定用户的密码设置为您刚刚生成的随机密码 b.将该密码传递到 check_mk 页面 c. 身份验证完成后,从您的 PHP 页面将 ldap 密码设置回原始密码。
这样您就不会传递真实密码,并且也将在 php 和 check_mk 页面之间完成单点登录。
如果您可以修改 check_mk,我会给您其他答案。让我知道这个是否奏效。
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |