为什么即使在启用SSL后,也可以在端口389上访问活动目录?

时间:2014-12-17 14:24:43

标签: c# ssl active-directory

我基本上有三个问题:我需要使用.Net 3.5。

  1. 我在我的Active Directory上启用了SSL。我已导出证书并导入到其他计算机上。现在,当我尝试使用端口389访问活动目录时,它允许我连接。这是预期的行为吗?

  2. 我发现使用的很多地方" LDAPS"使用SSL时在我的目录路径中。但是当我使用它时,我得到了未知的COM异常。在MSDN上我发现没有这样的东西" LDAPS" https://social.msdn.microsoft.com/Forums/vstudio/en-US/723c3908-5806-4515-a5b2-b565e0131a2b/active-directory-connection-ldap-over-ssl

  3. 我真的需要在用户名(域\用户)之前提供域名吗?我能够连接而不用这种方式指定域名。我需要提供FQDN或SSL证书颁发的名称。

  4. 我正在使用DirectoryEntry类进行实现。

    string path = "LDAP://hostname:port/SearchBase";
    DirectoryEntry _directoryEntryObj = new DirectoryEntry(path, userName, password);
    if(IsSSL)
        _directoryEntryObj.AuthenticationType = AuthenticationTypes.SecureSocketsLayer;
    object obj = _directoryEntryObj.NativeObject;
    

1 个答案:

答案 0 :(得分:0)

  1. 如果您不停用普通LDAP,则这是预期的行为,因为LDAPS使用其他端口,请参阅:https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
  2. 一般来说,我不相信你会在ADS上运行,只能在LDAPS(端口636)上运行,并且普通LDAP(389)被阻止。我不认为大多数应用程序实现LDAPS,但我可能是错的。

    最重要的是,证书必须有效。如果您只是导出到另一台计算机(使用其他主机名),则证书将不受信任。你使用什么样的证书?

    1. 这可能与我对证书有效性的关注有关

    2. 当我在.Net中使用ldap / ad时,我发现你也可以使用当前用户。如果您不想使用该用户,则必须使用domain \ user。我还认为您考虑了最佳做法,因为您始终可以确定指定的用户是本地帐户还是域帐户。

    3. -

      希望我能提供帮助, 问候