Announcement

Collapse
No announcement yet.

LDAP Abfrage mit Authentifizierung an "fremder" Domäne

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • LDAP Abfrage mit Authentifizierung an "fremder" Domäne

    Hallo zusammen,

    ich benötige Hilfe von Leuten die sich mit so etwas auskennen.

    Folgende Aufgabenstellung:
    Über eine .Net-Anwendung möchte ich einige Werte aus der AD auslesen. Weder der Rechner noch der Benutzer sind aus der gleichen Domäne. Zur LDAP-Abfrage muss somit eine vollständige Authentifizierung stattfinden.
    Hier mein bisheriger Versuch. Wie man aus der Programmierung sicherlich erkennen kann, hab ich das über VBS zusammengebastelt.
    Wenn ich es so laufen lasse, bekomme ich bei der LDAP-Anfrage immer die Fehlermeldung „Server steht nicht zur Verfügung“.
    Wo ist denn hier der Fehler, oder bin ich mit diesem Code komplett auf dem Holzweg.

    Vielen Dank im voraus


    Sub Main()

    Const ADS_SECURE_AUTHENTICATION = 1
    Const ADS_FAST_BIND = 32
    Const ADS_USE_DELEGATION = 256

    Dim strPath(5)
    Dim strPassword(5)
    Dim strDom(5)
    Dim strUsername = "cn=Administrator,cn=users,"
    Dim strAttributes = "sn,givenName,msRADIUSFramedIPAddress"
    Dim strExportFile = InputBox("Bitte geben Sie den Dateinamen (Excel) für den Export an:", , "C:\temp\AD-Export.xls")
    Dim strfilter = "(&(objectCategory=Person)(objectClass=User))"
    Dim strScope = "subtree"

    strDom(1) = "dc=mobile,dc=firma,dc=de"
    strPath(1) = "LDAP://10.100.0.1/" & strDom(1)
    strPassword(1) = "Password"


    Dim objNamespaceLDAP = GetObject("LDAP:")
    Dim cn = CreateObject("ADODB.Connection")
    Dim cmd = CreateObject("ADODB.Command")

    Dim objExcel = CreateObject("Excel.Application")
    Dim objWB = objExcel.Workbooks.Add
    Dim objSheet = objWB.Worksheets(1)

    objWB.Worksheets.Add()

    cn.Provider = "ADsDSOObject"
    cn.Open("Active Directory Provider")
    cmd.ActiveConnection = cn



    For i = 1 To 1
    Dim objMyObject = objNamespaceLDAP.OpenDSObject(strPath(i), strUsername & strDom(i), strPassword(i), ADS_SECURE_AUTHENTICATION Or _
    ADS_FAST_BIND Or ADS_USE_DELEGATION)

    cmd.commandtext = "<" & strPath(i) & ">;" & strfilter & ";" & strAttributes & ";" & strScope
    Dim rs = cmd.execute
    objSheet = objWB.Worksheets(i)
    objSheet.name = strDom(i)

    For i2 = 0 To rs.Fields.Count - 1
    objSheet.Cells(1, i2 + 1).Value = rs.Fields(i2).Name
    objSheet.Cells(1, i2 + 1).Font.Bold = True
    Next

    objSheet.Range("A2").CopyFromRecordset(rs)

    Next

    objWB.SaveAs(strExportFile)
    rs.close()
    cn.close()
    objSheet = Nothing
    objWB = Nothing
    objExcel.Quit()
    objExcel = Nothing

    MsgBox("Die Datei " & strExportFile & " wurde erstellt.")


    End Sub
Working...
X