Announcement

Collapse
No announcement yet.

Daten aus ActiveDirectory auslesen und anzeigen

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

  • Daten aus ActiveDirectory auslesen und anzeigen

    Hallo Zusammen, ich habe mit PHP noch nie gearbeitet, meine ActiveDirectory-Kenntnisse sind dürftig. Ich hoffe dennoch auf Eure Unterstützung.

    Ich soll in PHP die User-Namen auf einem W2003standard aus der ActiveDirectory auslesen.

    Ich habe die Daten für die Connection bekommen und benutze ein Beispiel aus dem Internet für den Verbindungsaufbau und der Ausgabe. Auf meinem Rechner bin ich ein Domänen-User in der Firma mit eingeschränkten Rechten. Die erforderlichen Programme für PHP musste ich unter einem Lokal-Admin-Account installieren.

    Laut dem u. a. Beispiel, müsste es so einfach gehen. Allerdings bekomme ich keine Verbindung.

    Code aus dem Internet:
    [highlight=php]
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
    </head>
    <body>
    <?php

    echo "Anfang";
    // Base DN bezeichnet die oberste OU unter der die User zu finden sind.
    $basedn = "ou=workinguser,dc=domain";
    $server = "dnsname";
    echo "<p>nach Base DN</p>";
    // da der Zugriff auch ohne Anmeldung möglich sein soll, hab ich einen extra User im AD angelegt, um mich mit dem Server zu verbinden.

    $username = "main";
    $password = "irgendeinwort";

    $ldap_port = "389";
    echo "<p>Zugriffe des Users</p>";

    // LDAP Abfrage
    // ich hab einen erweiterten Filter genommen, da ich nicht nur die User des AD haben wollte, sondern auch Kontakteinträge.
    // $filter = "(&(objectClass=user)(objectCategory=person)(cn=*) )";
    $filter = "(&(|(objectClass=user)(objectClass=contact))(obje ctCategory=person)(cn=*))";
    echo "<p>nach Filter</p>";

    // Verbindung zum AD herstellen
    if (!($connect = @ldap_connect($server))) {
    echo "Verbindung : false";
    die("Could not connect to ldap server");
    }
    echo "<p>nach Connection AD</p>";

    // Ihr könnt dies auch nutzen, um z.B. Usernamen und Passwort z.B. fürs Intranet zu verifizieren.
    $binding = @ldap_bind($connectid, $username, $password) or die("Fehler");

    // AD auslesen
    $search = @ldap_search($connectid, $basedn, $filter);
    $result = @ldap_get_entries($connectid, $sr);

    // in $result sind nun alle User mit allen Informationen enthalten.

    echo $result;
    ?>
    </body>
    </html>
    [/highlight]

    Die Vorgaben werden alle ausgeführt, denn ich bekomme im Browser die "echo"-Zeilen angezeigt, bis auf die Zeile(34) echo "<p>nach Connection AD</p>";. Es erscheint nicht einmal die Exception aus der if-Schleife.

    Im Browser erscheint nur:
    Anfang
    nach Base DN
    Zugriffe des Users
    nach Filter

    Es sollte aber angezeigt werden:
    Anfang
    nach Base DN
    Zugriffe des Users
    nach Filter
    nach Connection AD

    Was sollte ich unbedingt beachten? Bzw. Was ist falsch oder könnte fehlen?

    Vielen Dank für Eure Unterstützung

    Gruß Lerando

  • #2
    Wozu definierst du den Port, wenn du ihn nicht benutzt?
    Der Server ist wirklich unter "dnsname" bei dir zu erreichen?
    Christian

    Comment


    • #3
      Hallo,

      also wenn das "nach Filter" als Letztes ausgegeben wird und danach weder ein "Verbindung : false", noch das "nach Connection AD", dann gehe ich mal ganz stark davon aus, dass PHP in der Zeile 30 beim ldap_connect mit einem Fatal Error aussteigt, weil die LDAP-Unterstützung für PHP überhaupt nicht installiert ist.

      Wenn du folgendes ausführst:

      PHP Code:
      <?php

      phpinfo
      ();
      Wird dann irgendetwas von einer LDAP-Konfiguration ausgegeben? Hast du die Hinweise zur Installation von LDAP für PHP beachtet?

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Originally posted by Falk Prüfer View Post
        Wenn du folgendes ausführst:

        PHP Code:
        <?php

        phpinfo
        ();
        Wird dann irgendetwas von einer LDAP-Konfiguration ausgegeben? Hast du die Hinweise zur Installation von LDAP für PHP beachtet?

        Gruß Falk
        Ja, es werden 32 Seiten Information über PHP angezeigt. Auszug siehe Anhang
        Attached Files

        Comment


        • #5
          Originally posted by Christian Marquardt View Post
          Wozu definierst du den Port, wenn du ihn nicht benutzt?
          Der Server ist wirklich unter "dnsname" bei dir zu erreichen?
          Wenn ich den Port benutze kommt immer noch das gleiche.
          [highlight=php]
          ...
          // Verbindung zum AD herstellen
          if (!($connect = @ldap_connect($server,$ldap_port))) {
          echo "Verbindung : false";
          die("Could not connect to ldap server");
          }
          ...
          [/highlight]

          Der Server ist per dns-name erreichbar.
          Gruß Lerando

          Comment


          • #6
            Mich wundert es eigentlich, dass er keine Fehlermeldung ausgibt, sondern einfach nur abbricht.

            HINWEIS Um mich per Remote auf den Server zu verbinden, benötige ich einen Administrator-Zugang.

            Ist es vielleicht doch mein User-Account?

            Gruß Lerando

            Comment


            • #7
              Ich tippe ja immer noch auf den Namen.....
              Christian

              Comment


              • #8
                Originally posted by Christian Marquardt View Post
                Ich tippe ja immer noch auf den Namen.....
                Selbst mit der IP geht es nicht.

                Habt Ihr evtl. Tipps, was für die Verbindung wichtig ist?

                PS: "dsname" ist ein Ersatz für den richtigen namen. Ich darf die echten Daten nicht preisgeben. Vorgabe der Firma.

                Comment


                • #9
                  Ev. steht in den Serverlogs des Webservers der PHP-Fehler drin
                  Christian

                  Comment


                  • #10
                    Originally posted by Christian Marquardt View Post
                    Ev. steht in den Serverlogs des Webservers der PHP-Fehler drin
                    Leider nein.

                    Würde es etwas bringen, wenn ich es unter C# versuchen würde die Verbindung aufzubauen?

                    Comment


                    • #11
                      Würde es etwas bringen, wenn ich es unter C# versuchen würde die Verbindung aufzubauen?
                      Um die Erreichbarkeit von außen zu prüfen -> sicherlich
                      Christian

                      Comment


                      • #12
                        OK, unter C# bekomme ich auf jedenfall die Namen aus der ActiveDirectory. Aber warum bekomme ich Sie nicht unter PHP?

                        Es ist richtig zum Verzweifeln.

                        Kann ich denn irgendetwas zuprogrammieren, dass mir anzeigt was die Connection macht? Ich bekomme doch keine Rückmeldung oder Fehlermeldung.

                        Gibt es irgendetwas was ich einbauen könnte um eine Rückmeldung zu bekommen?

                        Gruß Lerando

                        Comment


                        • #13
                          Noch einen Hinweis:
                          Unter C# habe ich keine Connection benötigt.

                          Comment


                          • #14
                            Originally posted by Lerando View Post
                            Ja, es werden 32 Seiten Information über PHP angezeigt. Auszug siehe Anhang
                            Das da Infos zu PHP kommen ist mir klar und richtig, aber steht da auch was über LDAP?

                            Originally posted by Lerando View Post
                            ...Aber warum bekomme ich Sie nicht unter PHP?
                            ...
                            Kann ich denn irgendetwas zuprogrammieren, dass mir anzeigt was die Connection macht?
                            Originally posted by Falk Prüfer View Post
                            ...also wenn das "nach Filter" als Letztes ausgegeben wird und danach weder ein "Verbindung : false", noch das "nach Connection AD", dann gehe ich mal ganz stark davon aus, dass PHP in der Zeile 30 beim ldap_connect mit einem Fatal Error aussteigt, weil die LDAP-Unterstützung für PHP überhaupt nicht installiert ist.
                            Und was ist damit?
                            Originally posted by Falk Prüfer View Post
                            ...Hast du die Hinweise zur Installation von LDAP für PHP beachtet?
                            Gruß Falk
                            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                            Comment


                            • #15
                              Sorry, wollte nicht unhöflich sein und melde mich erst jetzt. Musste wieder wo anders tätig werden (C++, KomProz, VB...).

                              Ich brauche tatsächlich noch die entsprechenden Treiber.

                              Melde mich wieder, wenn ich alles soweit erledigt habe.

                              Vielen Dank für Eure Unterstützung

                              Gruß Lerando

                              Comment

                              Working...
                              X