【问题标题】:LDAP query from Chrome App来自 Chrome 应用的 LDAP 查询
【发布时间】:2013-09-03 15:57:19
【问题描述】:

我相信 javascript 仅限于使用 HTTP,但我很好奇是否有任何东西可以使 chrome 应用程序从客户端进行 LDAP 查询(无需通过我的网络服务器连接到LDAP 并检查凭据)。我的目标是让我的用户使用他们的网络凭据登录到内部 Web 应用程序,而不必在我的服务器上等待建立 HTTPS 连接。

另外,这样的设置是否存在任何安全问题?

【问题讨论】:

  • 不这么认为。即使您可以使用 js 直接从浏览器(WebSockets,也许?不确定它们是如何工作的)在任何端口上创建与任何服务器的 TCP 连接,您也必须在 javascript 中实现整个 ldap 协议,即使在大多数服务器端语言。
  • 看起来有人为节点github.com/jeremycx/node-ldap写了一个LDAP客户端。不确定这是否能让你更接近。

标签: javascript jquery ldap google-chrome-app


【解决方案1】:

Chrome 应用确实可以做你想做的事。您将使用 chrome.socket API 直接与 LDAP 服务器建立连接。

但是,您的问题引发了几个警报。如果您的客户端代码分别检查 LDAP 以获取凭据,并在 Web 应用程序中查询内容,那么是什么阻止了恶意或有问题的客户端跳过 LDAP 步骤并直接从 Web 应用程序未经授权直接获取内容?如果您的 Web 应用程序只假设受信任的客户端,那么为什么还要麻烦实际检查 LDAP?在现实生活中,这种设计就像给银行柜员一张纸条,上面写着“我不需要出示我的身份证,因为我保证我已经向驻守在银行外面的保安出示了身份证,请把所有的钱都给我在我的账户里。”对于凭证检查来说,无论是 LDAP 还是其他方式,都更常见且更安全,由 Web 应用程序在 HTTP/HTTPS 之后完成。 (就其机制而言,OAuth 是另一回事,但原则上是相同的。)

“无需在我的服务器上等待建立 HTTPS 连接”:完全不清楚您的意思是什么。 HTTPS 与身份验证无关(除非它确认服务器是真实的)。您真的是指 SSL 握手速度吗? SSL 握手通常为 200-500 毫秒。除非您的用例是不寻常的用例,否则这段时间无关紧要。同样,通常部署的 HTTPS 是与客户端身份验证无关的传输安全性。即使您找到了一种非标准但有效的客户端身份验证方式,您仍然希望通过 SSL 进行对话,除非内容确实没有任何敏感信息(在这种情况下,您可能不需要 Intranet 客户端身份验证)第一名)。

还有更多问题悬而未决,但您尚未充分解释您的用例。

TL;DR:是的,您可以使用 Chrome 应用程序执行此操作。但是,是的,这种设计存在许多安全问题。

【讨论】:

  • 感谢您的回复。我还应该提到,我希望这个应用程序能够查询 LDAP 以获取有关公司其他人的信息,类似于使用 Outlook 的通讯录(姓名、电子邮件、标题、照片、电话等)。
  • 登录不是为了安全,而是为了让我知道我在与“谁”“交谈”。应用程序中显示的信息是特定于用户的。使用 LDAP 进行身份验证似乎是限制最终用户查看其他用户信息的能力的最佳方式,同时为我提供了一些关于我正在与谁交谈的可靠信息。实际上,每个人都可以访问相同的信息,我只是提取与特定人有关的信息。如果我解释得不够清楚,我很抱歉。 cudos sowbug 上的答案!这是我需要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多