per PHP 5 User per LDAP dem AD hinufügen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • per PHP 5 User per LDAP dem AD hinufügen?

    Hallo!
    Ich würde gerne über PHP und LDAP User ins AD meines W2k3 Servers hinzufügen. Auslesen klappt ohne Probleme, aber mit ldap_add hab ich so meine Probleme.

    Hat das jemand schonmal versucht? Hats bei wem geklappt? Für Ideen wäre ich sehr dankbar!

    Mit freundlichen Grüßen, DrMeissner

  • #2
    wo ist das problem? wo ist dein code?

    Kommentar


    • #3
      An den Code komm ich gerade leider nicht, bin gerade arbeiten.

      Ich habe mich mal durch die Hilfe gehangelt, und versucht das Beispiel dort umzusetzen.

      bool ldap_add ( resource $Verbindungs-Kennung, string $dn, array $eintrag )

      resource $Verbindungs-Kennung ist kein Problem, beim String $dn habe ich immer die Daten aus dem Beispiel genommen:

      "cn=root, o=Meine Firma, c=DE"

      Beim array$eintrag Daten in Form von diesem hier:

      $info["cn"]="Hans Mustermann";
      $info["sn"]="Mustermann";
      $info["mail"]="MustermannH@firma.de";
      $info["objectclass"]="person";


      Ich bin mir nicht ganz im klaren, was cn, o, etc. auf meinem Windowsserver sind. Eventuell gebe ich auch den DN falsch an.

      Google hilt mir da leider nicht weiter. Hat das schon wer gemacht? Ein Beispiel anhand einer Windowsservers mit kurzer Beschreibung vom Aufbau des ActiveDirectory wäre super!

      Hab gestern stundenlang dran gearbeiten und bin jetzt ein klein wenig frustiert

      Kommentar


      • #4
        Hier der klägliche Versuch:

        <?php

        echo "<html><head>";
        echo "<title>Test User hinzufügen</title>";
        echo "</head><body>";

        $server = "ldap://192.168.172.240";
        $serverport = 389;
        $benutzer = "Administrator@meyer.schmidt";
        $passwort = "osaft";

        $ds = ldap_connect( $server, $serverport ) or die( "keine Verbindung zu {$server} Server");

        ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

        $bind=ldap_bind($ds, $benutzer, $passwort);

        $neueruser["UID"]="Hans Mustermann";
        $neueruser["CN"]="Hans Mustermann";
        $bind=ldap_add ( $ds, "OU=Benutzer,DC=meyer,DC=schmidt", $neueruser );

        echo "</body></html>";
        ?>


        Ich bin am Verzweifeln

        Kommentar


        • #5
          was gibt ldap_add() denn zurück? versuchs mit dem beispiel unter
          http://de.php.net/manual/en/function.ldap-add.php#57300

          Kommentar


          • #6
            he penizillin!
            erstmal vielen Dank für deine Antwort!

            Ich habe mal den Code anhand deines Beispieles abgeändert:
            PHP-Code:
            <?php
            $auth_user 
            "Administrator@schmidt.meyer";
            $auth_pass "osaft";

            ldap_set_option($connectLDAP_OPT_PROTOCOL_VERSION3);
            $ldap_conn ldap_connect("ldap:\\192.168.172.240");
            $bind ldap_bind($ldap_conn$auth_user$auth_pass)

            $member_array = array();
            $member_array[0] = "cn=user1,cn=Users,dc=schmidt,dc=meyer";
            $member_array[1] = "cn=administrator,cn=Users,dc=schmidt,dc=meyer";

            $addgroup_ad["cn"] = "testgroup";
            $addgroup_ad["samaccountname"] = "testgroup";
            $addgroup_ad["objectClass"] = "Group";
            $addgroup_ad["description"] = "Yep just a test.";
            $addgroup_ad["member"] = $member_array;
            $base_dn "cn=testgroup,cn=Users,DC=schmidt,DC=meyer";
            ldap_add($ldap_conn,$base_dn,$addgroup_ad);
            ?>
            Als Fehler erscheint folgendes:

            Parse error: syntax error, unexpected T_VARIABLE in C:\Programme\xampp\htdocs\ldap_add2.php on line 11

            Und das ist die Zeile 11:

            PHP-Code:
            $member_array = array(); 
            Was habe ich falsch gemacht?

            Mit freundlichem Gruß! DrMeissner

            Kommentar


            • #7
              Die Fehlermeldung besagt, dass da eine unerwartete Variable steht. Unerwartet, weil was anderes erwartet wird.

              Suchst du ein bisschen davor, was da wohl fehlen könnte und daher so dringend erwartet wird...
              ich glaube

              Kommentar


              • #8
                Okay, das ist mir nun peinlich. Ich habs jedenfalls von alleine gefunden

                Leider habe ich nun einen weiteren Fehler bei folgendem Code:

                PHP-Code:
                <?php
                $auth_user 
                "administrator@meyer.schmidt";
                $auth_pass "osaft";
                $ldaphost "ldap://192.168.172.240";
                $ldapport "389";

                $ldap_conn ldap_connect($ldaphost$ldapport)
                          or die(
                "Could not connect to $ldaphost");

                ldap_set_option($ldap_connLDAP_OPT_PROTOCOL_VERSION3);
                ldap_set_option($ldap_connLDAP_OPT_REFERRALS0);

                $bind ldap_bind($ldap_conn$auth_user$auth_pass);

                $member_array = array();
                $member_array[0] = "cn=user1,cn=Users,dc=meyer,dc=schmidt";
                $member_array[1] = "cn=administrator,cn=Users,dc=meyer,dc=schmidt";

                $addgroup_ad["cn"] = "testgroup";
                $addgroup_ad["samaccountname"] = "testgroup";
                $addgroup_ad["objectClass"] = "Group";
                $addgroup_ad["description"] = "Yep just a test.";
                $addgroup_ad["member"] = $member_array;
                $base_dn "cn=testgroup,cn=Users,DC=meyer,DC=schmidt";
                ldap_add($ldap_conn,$base_dn,$addgroup_ad);
                ?>
                Fehler:

                Fatal error: Call to undefined function ldap_connect() in C:\Programme\xampp\htdocs\ldap_add2.php on line 7


                Ich hoffe ich nerve noch nicht zusehr, aber ich komme absolut nicht weiter, obwohl ich mir schon etliche Male die Syntax von ldap_connect durchgelesen und andere Beispiele getestet habe.
                Vielen Dank fürs Lesen!

                Mit freundlichem Gruß, DrMeissner
                Zuletzt geändert von DrMeissner; 07.09.2007, 01:02.

                Kommentar


                • #9
                  mod_ldap aktivieren!

                  Kommentar


                  • #10
                    Das Einzige was ich dazu finde ist:
                    PHP-Code:
                    ldap_mod_add 
                    Ich habe einfach ldap_add mit diesem Befehl ersetzt. Da erscheint aber der gleiche Fehler.

                    Oder meintest du etwas anderes?

                    Ich wünsch ein schönes Wochenende!

                    Kommentar


                    • #11
                      Du solltes die PHP Extension mod_ldap aktivieren - ansonsten stehen die Funktionen garnicht zur Verfügung.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        Was ich nun gemacht hab:

                        Auf dem Server in der PHP.ini das Simikolon vor extension=php_ldap.dll weggenommen, auf der Workstation das Selbe.

                        War das richtig? Es kommt jedenfalls noch der gleiche Fehler :-/

                        Mit freundlichem Gruß! DrMeissner

                        Kommentar


                        • #13
                          Hast du den Webserver neu gestartet?

                          Kommentar


                          • #14
                            Ja, mehrmals. Hier ist nochmal das Script:

                            PHP-Code:
                            <?php

                            echo "<html><head>";
                            echo 
                            "<title>LDAP-ADD Test 2</title>";
                            echo 
                            "</head><body>";

                            $auth_user "administrator@meyer.schmidt";
                            $auth_pass "osaft";
                            $ldaphost "ldap://192.168.172.240";
                            $ldapport "389";

                            $ldap_conn ldap_connect($ldaphost$ldapport)
                                      or die(
                            "Could not connect to $ldaphost");

                            ldap_set_option($ldap_connLDAP_OPT_PROTOCOL_VERSION3);
                            ldap_set_option($ldap_connLDAP_OPT_REFERRALS0);

                            $bind ldap_bind($ldap_conn$auth_user$auth_pass);

                            $member_array = array();
                            $member_array[0] = "cn=user1,cn=Users,dc=meyer,dc=schmidt";
                            $member_array[1] = "cn=administrator,cn=Users,dc=meyer,dc=schmidt";

                            $addgroup_ad["cn"] = "testgroup";
                            $addgroup_ad["samaccountname"] = "testgroup";
                            $addgroup_ad["objectClass"] = "Group";
                            $addgroup_ad["description"] = "Yep just a test.";
                            $addgroup_ad["member"] = $member_array;
                            $base_dn "cn=testgroup,cn=Users,DC=meyer,DC=schmidt";
                            $ldap_conn ldap_add($ldap_conn,$base_dn,$addgroup_ad);

                            echo 
                            "</body></html>";

                            ?>
                            Kann mir wer vielleicht seine Kontaktdaten von irgendeinem Instant Messenger zukommen lassen? Die Sache lässt mich echt verzweifeln

                            Kommentar


                            • #15
                              Was ist denn jetzt eigentlich der Stand? Immernoch undefined function?

                              Kommentar

                              Lädt...
                              X