问题标签 [ldapconnection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - LdapConnection 超时与 SearchRequest 超时
哪个优先?
假设您创建了一个新的 LdapConnection 并将其 Timeout 属性设置为 30 秒。
稍后当您提交 SearchRequest 时,您还可以再次指定 30 秒的超时时间,如下所示:
连接显然比请求的寿命长,所以我希望第二个超时与请求相关联,第一个超时与连接相关联。想了想也没有什么意义,所以请教各位高手。由于连接是用超时创建的,它的超时优先吗?
python - 通过 SSL 的 python 和 ldap
我尝试使用运行良好的 python 查询 Active Directory 服务器。但现在我不想通过网络发送未加密的凭据,所以我想使用 LDAP。是否有捷径可寻?到目前为止,我发现我必须添加这个选项:
但我实际上不想获得 CA 证书或正确的证书并验证它。当然,从安全角度来看,我应该验证我的通信伙伴是正确的,但我不在乎我的内部网络,只是希望这更容易处理。如果我只是将 LDAP URL 从 ldap 更改为 ldaps 我会收到此错误:
openldap - 使用 UnboundID 和证书进行 SASL 外部身份验证
我想使用我的 OPENLDAP ldap 执行基于证书的身份验证。
我创建了一个 PKI,使用良好的密钥库、信任库/证书、密钥设置我的客户端和服务器。我还将 LDAP 配置为在 SSL 握手期间要求证书。
然后我尝试使用 UnboudID LDAP 进行身份验证,如下所示:
我要将连接绑定到的用户的 DN 对应于:
cn=12345,ou=anOrganizationUnit,o=anOrganization,dc=com,dc=example
. 由于来自证书的 DN 看起来像:cn=12345,ou=...,o=...,l=Berlin,st=some-state,c=de
我还在 LDAP 中创建了一个匹配规则。
只要我有 CA 签署的证书,bindRequest 总是会成功。如果来自 LDAP 的 DN 与 LDAP 中的任何内容不对应,则无关紧要。我猜它被转换为匿名连接。但是当它对应于现有用户时,也没有关系。用户未通过身份验证,我无权访问用户的权限。我尝试执行 WhoAmI 请求,它返回:
authzId
=dn:cn=12345,ou=anorganizationunit,o=anorganization,dc=com,dc=example
这似乎很好(大写字母转换为小写字母)。
我在 LDAP 配置中遗漏了什么吗?还是我的证书?
我会非常感谢任何帮助:)
编辑: 我不知道这是否有帮助,但在添加匹配规则之前,我执行了 WhoAmI 请求,结果类似于:
dn:cn\3D12345\2C...,o=organization,dc=com,dc=example
. 我在证书创建期间输入的通用名称似乎已被转义(\3D 是“=”,\2C 是“,”)。
c# - ActiveDirectory :重置密码以尊重密码历史记录
好吧,我正在使用 DirectoryEntry 和 LdapConnection 在我们强制执行密码最低年龄和历史策略的情况下重置密码。当有人忘记密码时,您希望他们能够将密码重置为不违反密码历史记录的内容。作为替代解决方案,可以使用“SetPassword”并将密码重置为生成的值,然后强制用户在下次登录时更改密码。这在我们的场景中是不可能的。因此,我在 technet 上关注这篇博文,并尝试使用 LDap 扩展控件来通过尊重密码历史记录来重置密码。简而言之,它只是一次又一次地更改为相同的密码而没有抱怨。我的代码如下:
对密码更改器的调用如下所示,
编辑:
这与此处解释的场景有关
https://support.microsoft.com/en-us/kb/2386717/
RE 我对“作为替代解决方案的评论”,可以使用“SetPassword”并将密码重置为生成的值,然后强制用户在下次登录时更改它。
我们不能在我们的场景中这样做,因为我们启用了密码历史记录和最小年龄限制(24 小时)。因此,我不能在用户上下文中使用 ChangePassword,在管理员上下文中使用 SetPassword(因为这不尊重密码历史记录)。
c - openLDAP c 客户端协议错误(ldap_simple_bind_s:协议错误)
我正在尝试使用 c 程序连接到 openLDAP 服务器,我找到了 openLDAP 客户端库并实现了以下程序。我尝试连接到这个ldap 服务器以及我的本地 ldap 服务器。我使用此命令编译程序没有错误
我尝试使用这个命令运行程序
然后它说
ldap_simple_bind_s:协议错误
我用谷歌搜索并找到了一些这样的答案,他们说这个错误来自协议版本未匹配 ei: LDAPv2 and LDAPv3,但我无法解决这个问题
c# - C# 连接到 Oracle 身份管理 LDAP 服务器
我们正在与另一家拥有 Oracle 身份管理服务器设置的公司合作。我们将连接到此并根据从服务器重试的 LDAP 数据对用户进行身份验证。
我们试图通过使用传递服务器名称和端口的 LdapConnection 对象以及它们提供给我们的网络凭据来插入此功能,因此我们使用的是 Basic 的 AuthType。但是在 Bind() 上我们总是失败,因为它说我们有无效的凭据。我们与客户合作以确保它们是正确的,并且我们已经能够使用凭据登录到 Oracle 身份管理,尽管我们必须使用来自 SearchRequests 专有名称的数据的用户名。但即使使用它,我们也会继续收到相同的错误。客户端还使用凭据通过 Java 进行连接。
这是一个问题,因为我认为真的没有解决方案,但是那里有人知道如何去做吗?我们正在运行相同的代码,这些代码正在运行并从 Active Directory 中提取。因此,只要 Oracle 支持以这种方式连接,我们的代码就应该没问题。但是找到任何关于这个话题的东西就像拔牙一样。
有人有这方面的经验吗?请让我知道,如果需要,我很乐意提供任何其他详细信息。
提前致谢!
php - php 中的 ldap_connect() 函数接受任何值并且不会抛出错误
我正在编写一个 php 代码来连接到我的 LDAP 服务器。
$adServer
我从配置文件中获取的值。
当我传递空白值或任何其他随机值(如“Hello”)时,看起来ldap_connect()
不会引发错误。
我尝试提供以下代码来检查是否生成了任何错误消息。
echo ldap_error($ldap)
它总是说“成功”。
因此,我无法验证与 LDAP 服务器的连接是否已建立并抛出适当的错误消息。
在什么情况下会触发“死”ldap_connect()
功能。如果配置文件中提供的服务器名称不起作用,我想向最终用户抛出适当的错误消息。
注意:我正在为 PHP 使用 5.6 版
c# - ldap-bind 上的凭据无效,密码为 ü
我正在使用类 LdapConnection 绑定到 ldap 服务器。如果是“普通”密码,它可以正常工作。但如果用户的密码包括 ü、ä 或 ö,服务器将返回错误 INVALID CREDENTIALS。我假设存在编码问题,但找不到任何设置 .NET 类。因此,我查看了网络流量,发现字母“ü”以十六进制表示为“fc”。使用 ldap 浏览器,“ü”由“c3bc”呈现。
有什么想法吗?
ssl - LdapConnection 端口 636 不使用 SSL 连接
我已经在我的虚拟机中设置了一个 Active Directory 服务器,并根据以下链接启用了 LDAP over SSL:https: //support.microsoft.com/en-us/kb/321051
我使用 ldp.exe 来测试我的设置,并能够连接到端口 636 并选中“SSL”复选框。然后我取消选中“SSL”复选框并再次尝试连接到端口 636。我预计连接会失败,因为端口 636 是为 LDAP over SSL 保留的。然而,令我惊讶的是,连接仍然通过。我很困惑。我可以使用端口 636 但没有 SSL 连接到 Active Directory 是否正常?
我还使用上面的代码在我的应用程序中测试了 ldap 连接,并且当 IsSSL 变量为 false 时它能够连接。
c# - 无法在 IIS 7 上使用 LdapConnection C# 进行身份验证
我正在尝试使用活动目录和 C# 进行身份验证。该代码在 Visual Studio 15 下的 IIS Express 上运行,但是当我将项目部署到 IIS 服务器时,LDAP 连接返回以下错误:
“提供的凭据无效”
这是我正在使用的代码:
当我使用 Visual Studio 进行调试时,一切正常,我可以验证用户是否存在于 AD 服务器上,但使用 IIS 服务器会发生错误。
更新
我通过禁用 IIS 服务器上的域控制器解决了这个问题。