受信任域之间的 Active Directory LDAPS

Posted

技术标签:

【中文标题】受信任域之间的 Active Directory LDAPS【英文标题】:Active Directory LDAPS between Trusted Domains 【发布时间】:2019-11-25 19:24:15 【问题描述】:

我正在尝试在两个域控制器 domainA.com 和 domainB.com 之间配置 LDAPS。我们配置了单向信任,以便 domainB.com 有权查看位于 domainA.com 中的用户帐户。 DomainA.com 有多个 SSL 证书:根证书和中间证书,以及每个域控制器的多个证书。

我正在寻求有关完成该过程的步骤的反馈,因为我觉得在上传证书时我遗漏了一些东西。我在下面详细说明了我采取的步骤。

根据我的研究,通过 LDAPS 启用这些控制器之间的连接的过程是:

注意:步骤 3-5 基于以下链接文章

    在域控制器之间打开端口(已完成) 建立单向信任(已完成) 从 domainA.com 域控制器导出证书(已完成) 将 .cer 文件加载到 domainB.com 并将它们添加到 java 密钥库(已完成) 使用 ldp.exe 工具建立 636 连接(失败

我是 Active Directory 的新手,不熟悉如何启用 LDAPS。在this article 的 LDAPS 部分,我执行了以下步骤来在 domainB.com 上配置 LDAPS:

    已安装 Active Directory 证书服务和证书颁发机构 将 domainA.com 中的 .cer 文件添加到 domainB.com 服务器的 Java 密钥库中 使用 ldp.exe 工具测试连接(389 (LDAP) 连接成功,636 (LDAPS) 连接失败)

使用 PortQryUI 工具进行的附加验证检查表明,域控制器之间的所有端口均已打开。

环境:AWS 和 On Prem

域控制器

domainA.com - 本地 AD 域控制器(由其他人控制)

domainB.com - AWS AD 域控制器(由我控制)

【问题讨论】:

【参考方案1】:

您正在测试的计算机必须信任该证书(开始菜单 -> 管理计算机证书 -> 受信任的根证书颁发机构)。如果我没记错的话,每次 ldp.exe 尝试连接并由于证书错误而失败时,事件查看器(系统日志)中可能会出现错误。

如果您想测试证书是否可信,您可以使用this answer 的 PowerShell 下载证书。只需使用https://domainA.com:636 作为“网站”。

$webRequest = [Net.WebRequest]::Create("https://domainA.com:636")
try  $webRequest.GetResponse()  catch 
$cert = $webRequest.ServicePoint.Certificate
$bytes = $cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
set-content -value $bytes -encoding byte -path "domainA.com.cer"

然后双击domainA.com.cer(在您运行此代码的任何文件夹中)以查看它。如果它不受信任,它将向您显示一个大警告。您的目标是能够查看它并让它说它是受信任的。

【讨论】:

以上是关于受信任域之间的 Active Directory LDAPS的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中验证远程 Active Directory 的用户

允许在没有Active Directory信任的情况下进行winhttp委派

Active Directory - Hortonworks 跨领域信任建立

学习总结-Active Directory 域服务管理06-站点和复制

Active Directory(活动目录)在企业中的运用

FreeIPA到Active Directory信任不起作用:访问被拒绝错误