Ankündigung

Einklappen
Keine Ankündigung bisher.

Login mittels Active Directory ( LDAP )

Einklappen

Neue Werbung 2019

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

  • Login mittels Active Directory ( LDAP )

    Hallo,
    ich möchte den Login einer Intranet Seite, über das Active Directory realisieren.

    Kann mir jemand helfen, wie ich die Einstellungen am Apache vornehme.

    Ich habe bereits gelesen, dass man in der httpd.conf eingige Änderungen vornehmen muss.


    Vielen Dank


    mfg
    Matze

  • #2
    Forensuche: LDAP

    Kommentar


    • #3
      Ja danke, ich suche mich seit 3 Tagen durch Foren durch, wie ich den Apache konfiguriere, dass er die Infos aus dem AD holt.


      Ein Skript habe ich bereits dazu:

      PHP-Code:
      <?
      $ldaphost  = "192.168.1.3";
      $ldapport  = 389;
      $user     = "Administrator@Domain.local";
      $password = "1234";
      $sdn = "cn=$user, cn=users, dc=domain, dc=local";
      $ldapconn = ldap_connect($ldaphost, 389);
      $ldapbind = ldap_bind($ldapconn, $sdn, $password);

      /* Alle User suchen.
        * Zeigt mir alle User in dem "Verzeichnis" User, siehe LDAP Baum
        */
      $basedn = "cn=users,dc=domain,dc=local";
      $filter = "(&(objectClass=user)(cn=*))";
      $search = ldap_search($ldapconn, $basedn, $filter);

      ?>
      Ich erhalte dort die Fehlermeldung:

      Fatal error: Call to undefined function ldap_connect() in D:\www\ldap.php on line 7

      Kommentar


      • #4
        Zitat von php Manual

        LXXV. LDAP Functions



        Requirements
        You will need to get and compile LDAP client libraries from either OpenLDAP or Bind9.net in order to compile PHP with LDAP support.

        Installation
        LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory. To enable SASL support, be sure --with-ldap-sasl[=DIR] is used, and that sasl.h exists on the system.

        Kommentar


        • #5
          So jetzt bin ich schoneinmal ein ganzes Stück weiter:

          Den Apache habe ich eingestellt.

          Und verwende folgenden PHP Quellcode:

          PHP-Code:
          <?
          // Adresse des Domänencontrollers:
          $ldap_server = "192.168.1.3";
          // Konto für den Zugriff:
          $auth_user = "Adminstrator@RAWOB.local";
          $auth_pass = "pwasswort";
           
          // Mit Server verbinden:
          if (!($connect=@ldap_connect($ldap_server))) {
           die("Keine Verbindung zum Verzeichnis-Server möglich.");
          }
          // Diese Parameter sind nötig für den Zugriff auf ein Active Directory:
          ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
          ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
          ldap_set_option($connect, LDAP_SCOPE_SUBTREE, 5);

          // An Server binden:
          if (!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) {
             die("Bind fehlgeschlagen.");
          }
          else
          {
           exit;

          ?>

          Allerdings bekomme ich folgende Fehlermeldung Bind fehlgeschlagen.

          Wo liegt denn hier mein Fehler?


          mfg
          Matze

          Kommentar


          • #6
            [MAN]ldap_error[/MAN]

            Kommentar


            • #7
              Dann lass Dir doch mal die "echte" Fehlermeldung ausgeben
              PHP-Code:
              if (!($bind=@ldap_bind($connect$auth_user$auth_pass))) {
                
              printf("%d - %s <br />', ldap_errno($connect), htmlspecialchars(ldap_error($connect))); 
                die("
              Bind fehlgeschlagen.");

              Kommentar


              • #8
                Zitat von David Beitrag anzeigen
                Dann lass Dir doch mal die "echte" Fehlermeldung ausgeben
                PHP-Code:
                if (!($bind=@ldap_bind($connect$auth_user$auth_pass))) {
                  
                printf("%d - %s <br />', ldap_errno($connect), htmlspecialchars(ldap_error($connect))); 
                  die("
                Bind fehlgeschlagen.");


                Parse error: syntax error, unexpected T_STRING in D:\www\ldapt2.php on line 20

                Das ist die Zeile:
                die("Bind fehlgeschlagen.");

                Kommentar


                • #9
                  "%d - %s <br />'
                  Entweder, oder: ' vs. "

                  Kommentar


                  • #10
                    Ok, klappt.

                    Aber Fehlermeldung ist immernoch Bind fehlgeschlagen.

                    Kommentar


                    • #11
                      Und davor? Mindestens einen Bindestrich müßte er anzeigen.

                      Kommentar


                      • #12
                        Die Fehlermeldung bekomme ich wenn ich

                        $ldap_server = "ldaps://ldap.rawob.local";

                        81 - Can't contact LDAP server
                        Bind fehlgeschlagen.



                        Bei

                        $ldap_server = "192.168.1.3";

                        49 - Invalid credentials
                        Bind fehlgeschlagen.

                        Kommentar


                        • #13
                          Ich hab jetzt schon verschiedene Benutzerkennungen probiert

                          Administrator@RAWOB
                          Administrator@RAWOB.local

                          Das bringt aber auch nichts

                          Kommentar


                          • #14
                            Wenn ich mich anonym anmelde dann klapps:

                            PHP-Code:
                            <?php

                            //verwenden von anonymen ldap bind

                            // verbinden zum ldap server
                            $ldapconn ldap_connect("192.168.1.3")
                                or die(
                            "Could not connect to LDAP server.");

                            if (
                            $ldapconn) {

                                
                            // anonymes binding
                                
                            $ldapbind ldap_bind($ldapconn);

                                if (
                            $ldapbind) {
                                    echo 
                            "anonymes LDAP bind erfolgreich...";
                                } else {
                                    echo 
                            "anonymes LDAP bind fehlgeschlagen...";
                                }
                             
                            }
                                
                            ?>

                            anonymes LDAP bind erfolgreich...

                            Kommentar


                            • #15
                              Hat einer vielleicht ein Skript, mit dem ich mich jetzt übers Active Directory einloggen kann?

                              Oder ein Skript, das mir schoneinmal anzeigt welcher Benutzer gerade angemeldet ist



                              mfg
                              Matze

                              Kommentar

                              Lädt...
                              X