首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Check_MK实现单点登录功能?

问如何使用Check_MK实现单点登录功能?
EN

Stack Overflow用户
提问于 2015-05-04 23:12:58
回答 1查看 1.7K关注 0票数 7

我在一个仪表板类型的网站上工作。我们有一个用php实现的登录页面,它根据LDAP服务器进行身份验证。我们还有一个Check_MK页面,它有自己的登录对话框,可以对同一个LDAP服务器进行身份验证。我希望用户不必在Check_MK登录对话框中重新输入其凭据。我更希望输入到我们的php登录页面的凭据传递给Check_MK,这样身份验证就可以在没有用户交互的情况下完成。这个是可能的吗?如果是这样,我该怎么做呢?

编辑对于那些标记为太宽的人,请解释。

我可以通过这个网站上描述的url传递用户名和密码来自动登录check_MK: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许可证的原因,我无法修改GNU文件。除了以纯文本形式通过URL传递凭据之外,我如何使用提供给我的php登录页面的凭据自动登录到check_MK页面?

下面是打开Check_MK登录屏幕的php/html代码。

代码语言:javascript
复制
<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代码。

这是我第一次接触到这些语言和技术。即使是搜索词的建议也会很受欢迎。

EN

回答 1

Stack Overflow用户

发布于 2015-05-07 18:50:02

贾斯汀

由于您无法修改check_mk页的代码,因此必须将凭据传递给它。如果没有这个限制,那么有许多安全的方法可以做到这一点。

现在有了这个限制,这是我过去使用过的一个选项,可以为您工作。

Step1。在您的PHP代码中,您可以访问原始密码...(安全地保存它) Step2。在事务中(全部或无,执行以下操作) a.将该特定用户的ldap中的密码设置为您刚才生成的随机密码b.将该密码传递到该check_mk页面c.身份验证完成后,立即从您的PHP页面将ldap密码设置回原始密码。

这样你就不需要传递真实的密码了,还可以在你的php和check_mk页面之间实现单点登录。

如果你可以修改check_mk,我会给你其他的答案。如果有效,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30033614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档