У меня есть код, который работает правильно для подключения к серверу Active Directory:
Dim oDSObj: Set oDSObj = GetObject("LDAP:")
Dim oAuth: Set oAuth = oDSObj.OpenDSObject("LDAP://ldap.domain.com", "DOMAIN\username", "password", 1)
Однако я не могу понять синтаксис, чтобы заставить это работать с сервером OpenLDAP:
Dim oDSObj: Set oDSObj = GetObject("LDAP:")
Dim oAuth: Set oAuth = oDSObj.OpenDSObject("LDAP://ldap.domain.com/ou=Users", "username", "password", 1)
Честно говоря, я немного n00b, когда дело доходит до LDAP, поэтому я не понимаю, что означает dc vs cn vs ou (я знаю, что они означают единицу org, общее имя и т. Д.), Но я не получается, когда вам нужно привязать это к запросам.
Как только я подключаюсь к серверу Active Directory, следующий код запрашивает его:
dc = ""
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "ADSDSOObject"
oConn.Open "Ads Provider", "DOMAIN\username", "password" '
Dim rs: Set rs = oConn.Execute("<LDAP://ldap.domain.com" & dc & ">;(& (objectCategory=person)(objectClass=user)(sAMAccountName=" & GetLDAPUserName(sPerson) & "));name,mail,telephoneNumber;subtree")
Но я понимаю, что sAMAccountName - это особенность AD, поэтому для кода openLDAP потребуется другой синтаксис.
Пользователь 'ldapuser' с паролем 'password', хранится здесь:
НУ = Users, DC = домен, DC = COM
Какой код используется для подключения к этому серверу LDAP и запроса информации об учетной записи?