gpt4 book ai didi

javascript - LDAP over TLS 在 Node 中使用 ldap-client

转载 作者:行者123 更新时间:2023-12-01 16:30:59 24 4
gpt4 key购买 nike

我对域的概念还很陌生,正在尝试在 node.js 中通过 TLS 实现 LDAP。我已经被这个问题困扰了很多天了。我正在使用 ldap-client .

var LDAP = require('ldap-client');

var ldap = new LDAP({
validatecert: false, // Verify server certificate
...
}, function(err) {
// connected and ready
});

所以通过一些研究我得出结论,如果字段 validatecert 被设置为这些值

LDAP.LDAP_OPT_X_TLS_NEVER  = 0;
LDAP.LDAP_OPT_X_TLS_HARD = 1;
LDAP.LDAP_OPT_X_TLS_DEMAND = 2;
LDAP.LDAP_OPT_X_TLS_ALLOW = 3;
LDAP.LDAP_OPT_X_TLS_TRY = 4;

在库文档的 TLS 部分下被引用

TLS can be used via the ldaps:// protocol string in the URI attribute on instantiation. If you want to eschew server certificate checking (if you have a self-signed cserver certificate, for example), you can set the verifycert attribute to LDAP.LDAP_OPT_X_TLS_NEVER, or one of the following values:

我可以用它建立安全连接。

我知道我们需要证书才能使 TLS 连接正常工作。一个由服务器持有,另一个由客户端(我)持有。我的问题是我是否将该字段设置为上述任何一种方法:

  • 如何验证我的连接是否安全?
  • 我在哪里可以看到证书或根本看不到它们?
  • 我是否必须从服务器手动生成证书并使用它们?

最佳答案

证书是一种帮助其他人验证出示证书的实体确实如其所声称的那样的方法。因此,当您连接到服务器并且服务器返回证书时,然后通过该证书您可以确定该服务器确实是服务器而不是冒名顶替者。

证书的权力归于颁发者(也称为证书颁发机构或 CA)。如果您信任颁发者,那么您实际上就信任它颁发的证书。重要的 CA 列表通常存在于操作系统本身中,因此获取证书和验证该证书对应用程序开发人员来说是透明的,尤其是在您使用库时。


一一总结:

I know that we need certificates for TLS connection to work. One is held by the server and another by the client (me).

你没有在这里问任何问题,这里是一些一般信息。通常只需要服务器验证。在高安全性环境中,也会进行客户端验证,您(即客户端)需要来自 CA 的证书来向服务器验证您自己。但是,在大多数应用程序中,服务器验证就足够了。

类似于RDBMS规范化中的Normal Forms。即使您有像 6NF 一样严格的范式,通常 RDBMS 会被规范化到 3NF。


How am I to verify that my connection is secure?

通常,如果您使用的是知名库(如 curl 或 openLDAP),调用其安全连接方法就足够了。您调用库声称安全的函数的可能性很小,但事实证明这是一场闹剧。

可以肯定的是,您可以查看服务器的流量。 Wireshark 通常用于网络流量分析。


Where do I see the certificates or not see them at all?

在大多数情况下,您看不到证书。您所做的就是告诉您的图书馆您希望验证的严格程度。然后你的图书馆会处理剩下的事情——如果证书有问题,通常会抛出异常或记录错误。

如果您使用的是客户端证书,那么您必须将其保存在文件系统中并将您的库指向它。它通常是一个 .pem 文件。


Do I have to manually generate certificates from the server and use them?

没有。对于服务器证书,服务器有责任为您提供有效的证书。您所要做的只是检查服务器发送的证书是否来自已建立的 CA - 如前所述,这通常是使用该库的开发人员的透明步骤。

如果您不太在意或者您想开始编码而 CA 尚未为您颁发证书,您可以对服务器进行编程以为其客户端提供自签名证书并对客户端进行编程使验证不那么严格。

自签名证书在安全方面没有什么值(value)。这就像服务员说——“嘿,我告诉你,我就是你想与之交谈的人。”这显然是不够的。您需要您完全信任的第三方(即 CA)来确认他就是您想要与之交谈的人。

关于javascript - LDAP over TLS 在 Node 中使用 ldap-client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51075517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com