通过SSL使用AD LDS

时间:2016-04-04 12:01:23

标签: ssl active-directory ldap adlds

我需要通过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

1 个答案:

答案 0 :(得分:0)

我已经完成了首先配置Enterprise CA,然后使用此页面上的指南

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

按以下顺序

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

    此步骤的第5点

    “5.在”复制模板“对话框中,保持选中默认选定的Windows Server 2003 Enterprise,然后单击”确定“。”

    仔细选择相关的操作系统,教程说默认但我使用的是Windows Server 2012 r2,所以我选择了我正在使用的操作系统。选择相关的操作系统。

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

  3. 验证LDAPS连接
  4. 为什么我需要通过SSL进行ADLDS连接?

    因为我希望用户更改他/她的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");
                }