【问题标题】:LDAP over SSL on windows serviceWindows 服务上基于 SSL 的 LDAP
【发布时间】:2010-01-07 16:57:13
【问题描述】:

我有一个使用 SSL 连接到 LDAP 服务器的应用程序。我遇到的问题是,当我将它作为控制台应用程序运行时,它会成功连接,但是当我将应用程序作为 Windows 服务运行时,它会失败。

有一些信息可以提供帮助:

  • ldap_sslinit 总是返回成功

1 ldap_connect = 0(成功),所有 LDAP 端口在用户 ADMINISTRATOR 下作为 APPLICATION 运行 测试端口 389,3268 没有 ssl 和 636,3269 有 SSL 2 ldap_connect = 0(成功)作为服务运行,端口为 389 或 3268 3 ldap_connect = 81(未连接)使用端口 636 或 3269 运行 AS SERVICE 我们测试了在用户管理员下运行的服务 并在其他具有所有权限的特殊用户代理下进行了测试

  • 我们启用了一些作为服务登录的权限,而另一些则没有成功。
  • 我们还将证书添加到本地计算机和服务用户中

测试示例

pLdapConnection = ldap_sslinit((PWCHAR)ldap_host.c_str(), ldap_port,1); // Secure LDAP 
// allways return success
ldap_set_option(pLdapConnection, LDAP_OPT_SSL, LDAP_OPT_ON); // set SSL option
ldap_set_option(pLdapConnection, LDAP_OPT_REFERRALS, LDAP_OPT_OFF); // required  
result = ldap_connect(pLdapConnection, &timeout);

结果 = LDAP_SERVER_DOWN (0x51)

感谢您能给我的任何帮助。

【问题讨论】:

    标签: c++ ssl ldap


    【解决方案1】:

    服务在什么帐户下运行?它是有权访问 LDAP 服务器的特定域用户吗?您可能还想在 LDAP 服务器上set the SPNs;我之前在进行身份验证时遇到过双跳令牌问题。

    【讨论】:

    • 这里有更多信息... 运行服务为:本地用户、管理员、ezbio-agent 用户。组策略属性中的更改:将登录作为服务权限添加到管理员、访客等...... dsHeuristics=0000002 DN 安全权限:添加访客、添加匿名登录、添加网络服务、添加本地服务 ezbio-agent 特殊用户创建以运行拥有一切权限的代理
    • 因此,您从控制台运行它,您可以通过 SSL 连接或未加密(我假设您在 ldap_sslinit 的最后一个参数中使用 1 或 0),但作为服务运行用户只能连接未加密?如果它是一个不受信任的 CA,那么它的运行方式应该无关紧要。我想不出它为什么重要的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2013-05-11
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    相关资源
    最近更新 更多