通过 SSL 使用 AD LDS

Using AD LDS over SSL

我需要通过 SSL 配置 AD LDS 两天以来我都在尝试每篇文章,这 http://erlend.oftedal.no/blog/?blogid=7 似乎很合理,但我无法为证书授予 AD LDS 实例的读取权限。

这是官方文章,第一步真的很模糊不知道该怎么做 https://msdn.microsoft.com/en-us/library/cc725767(v=ws.10).aspx#BKMK_1

我正在使用 Windows Server 2012 r2

我已完成配置,先配置企业 CA,然后使用此页面上的指南

http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx#Reasons

顺序如下

  1. 发布支持服务器身份验证的证书

    这一步的第5点是

    "5. 在复制模板对话框中,保留默认的 selected Windows Server 2003 Enterprise selected,然后单击确定。"

    仔细 select 你的相关 OS,教程说保留默认但我使用的是 Windows Server 2012 r2,所以我选择了我正在使用的那个。选择您的相关 OS.

  2. 导出 LDAPS 证书并导入以用于 AD DS

  3. 正在验证 LDAPS 连接

为什么我需要通过 SSL 进行 ADLDS 连接?

因为我希望用户更改 his/her ADLDS 密码,使用 PrincipalContext 的非 SSL 连接不允许我这样做。所以现在我正在使用下面的代码,它的工作就像一个魅力。

PrincipalContext pc = new PrincipalContext(
                    ContextType.ApplicationDirectory,
                    "YourServerUrl:YourSSLPort",
                    "CN=YourPartitionName,DC=partition,DC=com",
                    ContextOptions.SimpleBind | ContextOptions.SecureSocketLayer,
                    "FullDistinguisedNameOfUser",
                    "PasswordOfUser");

bool IsUserValidated = pc.ValidateCredentials(
                    "FullDistinguisedNameOfUser",
                    "PasswordOfUser",
                    ContextOptions.SimpleBind | ContextOptions.SecureSocketLayer);


            if (IsUserValidated)
            {
                UserPrincipal up = UserPrincipal.FindByIdentity(
                "FullDistinguisedNameOfUser", 
                "PasswordOfUser");

                up.ChangePassword("UserOldPassword", "UserNewPassword");
            }