Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    LDAP Server konfiguration - Fehler in Eingabemaske

    Scheduled Pinned Locked Moved Betrieb
    13 Posts 4 Posters 8.1k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C Offline
      cyberus
      last edited by

      Hallo liebe i-doit Gemeinde. Ich habe jetzt seit einigen Wochen i-doit als neues Dokumentationstool für unsere IT-Infrastruktur evaluiert. Erst mal großes Lob! ein klasse tool.

      Nur mit der LDAP anbindung für die Nutzer Authentifizierung hab ich ein paar Probleme.

      ich habe einen LDAP Server angelegt:
      Aktiv -> JA
      Directory (😞  -> Active Directory
      LDAP-Version: -> 2
      IP / Hostname (
      😞 -> our.server.company.com
      Port (😞 -> 389
      Admin Benutzername (DN) (
      😞 -> COMPANYDOMAIN\ldapuser
      Passwort (😞 ****
      Passwort Wiederholung (
      😞 ****
      Timelimit: 15

      LDAP Parameter für i-doit Login

      Nach Benutzern suchen in (OU) (*): OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com
      Filter: (&(objectClass=user)(objectClass=sAMAccountName)(objectClass=Password))

      Attribut: objectClass Wert: user

      Attribut: objectClass Wert: sAMAccountName

      Attribut: objectClass Wert: Password

      naja wie Ihr unschwer erraten werdet: es funktioniert nicht.

      Problem 1: ich kann die Eingabemasken nur bedingt bearbeiten. Die erste inputbox für "Attribut" und "Wert" ist ausgegraut? also kann ich schon mal "(objectClass=user)"  (was meiner Meinung nach nicht hin haut) nicht löschen. Die anderen beiden inputboxen sind zwar editierbar, aber nicht löschbar.

      Wenn ich versuche einen neuen LDAP server anzulegen (weil der alte ja nicht so recht editierbar ist), dann bekomme ich ein formular mit einem neuen server, ohne daten. wenn ich den "edit" button betätige, dann lande ich wieder in der übersicht für die eingerichteten LDAP Server.

      ich benutze Firefox 3.6.17 oder opera 11.11 (bitte fragt mich nicht, ob es mit dem IE geht… da müsste ich meine Windows VM erst abstauben)

      Problem 2:
      so richtig hab ich die Logik noch nicht verstanden.
      "Nach Benutzern suchen in (OU) (*):"  -> hier gebe ich doch die organisational unit einer domain an, in welcher nachgesehen werden soll ob der Benutzer existiert, welcher sich versucht anzumelden, richtig?

      "Filter:" -> und hier sage ich dann, welche kriterien er erfüllen muss

      in meinem Fall will ich einem benutzer aus unserer domain, der in der OU "intern" und in der OU "administration" und in der OU "bereiche" erlauben sich am idoit anzumelden. Wenn ich den button "start test" betätige, dann bekomme ich auch bestätigt das die Verbindung OK ist und mehr als 50 Datensätze gefunden wurden. Wenn ich beim test wireshark auf dem i-doit server laufen lasse, dann sehe ich auch wie die AD abgefragt wird und mein Benutzerobjekt übertragen wird (also die OU kombi ist schon mal korrekt).

      Wenn ich mich jetzt mit diesem Benutzernamen versuche am Frontend anzumelden, dann sehe ich im wireshark aber nur:

      i-doit -> ldap = bindRequest
      ldap -> i-doit = bindResponse(success)
      i-doit -> ldap = unbindRequest()

      also der i-doit server scheint sich zum ldap zu verbinden, der Verbindugsaufbau klappt, dann baut er die Verbindung aber sofort wieder ab und am Frontend bekomme ich einen Anmeldefehler (flascher user/password)

      Könnt Ihr mir da weiter helfen?

      viele Grüße

      1 Reply Last reply Reply Quote 0
      • H Offline
        hsz
        last edited by

        Hast Du das LDAP Debugging eingeschaltet (in src/config.inc.php)?
        die Ausgabe in temp/ldap_debug.txt wäre interessant.

        Hardcore geht immer 😉
        UPDATE isys_ldap SET isys_ldap__filter = '(objectClass=*)' WHERE isys_ldap__hostname = '<hostname ip="">'

        wird aber durch die Oberfläche wieder überschrieben</hostname>

        1 Reply Last reply Reply Quote 0
        • C Offline
          cyberus
          last edited by

          Also ich hab bei uns das ldap logging aktiv und die konfiguration mal direkt in die SQL Datenbank gepresst (komischerweise kann ich jetzt die konfig im Frontend wieder bearbeiten). Im logfile sehe ich:

          2011-10-26 17:04:00 ldap: LDAP Module launched for mandator: idoit_it
          2011-10-26 17:04:00 ldap: Found 1 configured LDAP Servers.
          2011-10-26 17:04:00 ldap: 1: our.server.company.com (OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com)
          2011-10-26 17:04:00 ldap: –--------------------------------------------------------------------------------------------
          2011-10-26 17:04:00 ldap: Creating new ldap-library connection to: our.server.company.com:389, user: DC\ldapu
          2011-10-26 17:04:00 ldap: Connected to our.server.company.com
          2011-10-26 17:04:00 ldap: Searching for username: PC00079
          2011-10-26 17:04:00 ldap: Getting user(s) using filter: (&(&(objectClass=*)(cn=PC00079)) in search-path: OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com
          2011-10-26 17:04:00 ldap: ** No user found.
          2011-10-26 17:04:00 ldap: User not found. Check if PC00079 exist in your configured search-path: OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com
          2011-10-26 17:04:00 ldap: ----------------------------------------------------------------------------------------------
          2011-10-26 17:04:00 ldap: *** LDAP Auth failed. (false)

          im wireshark trace am server sehe ich aber nur:

          i-doit -> ldap server : bindRequest
          ldap server -> i-doit : bindResponse (success)
          i-doit -> ldap server : unbindRequest

          also direkt nach dem Verbindungsaufbau zum ldap server wir die Verbindung sofort wieder geschlossen, ohne eine Abfrage zu machen.

          Funktioniert ldap mit MS AD unter version 0.9.9-7  überhaupt? kann das jemand bestätigen? habe ich einen Grundlegenden Denkfehler drin?

          Wenn ich den test im config menü durchführe, dann sagt er wie schon erwähnt:

          WEB Frontend:

          Connection OK!
          50 or more objects found in OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com.

          logfile:

          2011-10-26 18:20:54 ldap: Testing connection to our.server.company.com:389 (DC\ldapu)
          2011-10-26 18:20:55 ldap: Connected to our.server.company.com
          2011-10-26 18:20:55 ldap: Connection successfull.
          2011-10-26 18:20:55 ldap: 50 or more objects found in OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com

          wireshark:
          i-doit -> ldap server : bindRequest
          ldap server -> i-doit : bindResponse (success)

          .
          .
          .eine Abfrage mit jeder Menge Daten (u.a dem Benutzer, den ich versuche anzumelden)
          .

          i-doit -> ldap server : unbindRequest

          1 Reply Last reply Reply Quote 0
          • C Offline
            cyberus
            last edited by

            dummerweise spuckt er beim test den verwendeten filter im logfile nicht aus. er meint nur, dass es eben gehen müsste. Beim eigentlichen Verbinden printet er ja den verwendeten filter aus: (&(&(objectClass=*)(cn=PC00079))

            und das sieht schon komisch aus, wo hat er denn das erste & her? steht jedenfalls nicht in der Datenbank.

            1 Reply Last reply Reply Quote 0
            • dsD Offline
              ds
              last edited by

              (&(objectClass=user)(objectClass=sAMAccountName)(objectClass=Password))
              Das ist so denke ich nicht richtig, da sAMAcoountName ein Attribut und nicht keine objectClass ist. Was für einen Filter wolltest du denn genau erstellen?

              1 Reply Last reply Reply Quote 0
              • C Offline
                cyberus
                last edited by

                jo, der war falsch. Ich hab mitlerweile nur noch "objectClass=*"

                Aber es tut leider nicht, beim test findet er zwar mehr als 50 Objekte (laut wireshark ist dort auch mein user dabei) wenn ich mich aber mit meinem user anmelden will, dann funktioniert es nicht (laut wireshark macht er auch keine Abfrage).

                Ich weiß halt leider nicht ob es ein Bug ist, oder ich mich einfach nur zu blöd anstelle (zweiteres ist durchaus im Rahmen des möglichen gg)

                1 Reply Last reply Reply Quote 0
                • dsD Offline
                  ds
                  last edited by

                  Heheh kann es sein das dein User im i-doit bereits existiert? Denn die Abfrage findet nur unter folgenden drei Bedingungen statt:

                  • User existiert nicht (User wird gesucht und angelegt)
                  • User existiert aber Passwort des internen i-doit Users wurde falsch eingegeben (User wird im LDAP gesucht und das LDAP Passwort wird ebenfalls probiert)
                  • User existiert und wurde über die LDAP Kopplung angelegt (User wird im LDAP gesucht und Passwort wird geprüft)
                  1 Reply Last reply Reply Quote 0
                  • C Offline
                    cyberus
                    last edited by

                    Also ich habe jetzt mal die ersten beiden deiner Bedingungen getestet. Das Ergebnis bleibt in beiden Fällen wie beschrieben:
                    i-doit login screen sagt: "Invalid username or password!"
                    /var/www/temp/ldap_debug.txt:

                    2011-11-03 15:22:34 ldap: LDAP Module launched for mandator: idoit_it
                    2011-11-03 15:22:34 ldap: Found 1 configured LDAP Servers.
                    2011-11-03 15:22:34 ldap: 1: our.server.company.com (OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com)
                    2011-11-03 15:22:34 ldap: –--------------------------------------------------------------------------------------------
                    2011-11-03 15:22:34 ldap: Creating new ldap-library connection to: our.server.company.com:389, user: DOMAIN\ldapr
                    2011-11-03 15:22:34 ldap: Connected to our.server.company.com
                    2011-11-03 15:22:34 ldap: Searching for username: prendela
                    2011-11-03 15:22:34 ldap: Getting user(s) using filter: (&(objectClass=*)(cn=prendela)) in search-path: OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com
                    2011-11-03 15:22:34 ldap: ** No user found.
                    2011-11-03 15:22:34 ldap: User not found. Check if prendela exist in your configured search-path: OU=intern,OU=administration,OU=bereiche,DC=our,DC=company,DC=name,DC=com

                    wireshark:

                    ldap verbindung wird aufgebaut (bindrequest) und sofort wieder geschlossen (unbindrequest) ohne irgend eine Art von kommunikation dazwischen

                    irgend eine idee?

                    in der Datenbank steht bei mir noch unter "isys_ldap__filter_array "
                    a:5:{s:10:"attributes";a:1:{i:0;s:11:"objectClass";}s:6:"values";N;s:10:"field_type";a:1:{i:0;s:1:"3";}s:15:"field_link_type";a:1:{i:0;s:1:"&";}s:14:"field_operator";a:1:{i:0;s:1:"=";}}

                    kann dort ein fehler drin liegen?

                    1 Reply Last reply Reply Quote 0
                    • dsD Offline
                      ds
                      last edited by

                      Ich glaube es liegt am cn=prendela. Setzt du active directory ein? Wenn ja geh mal in die LDAP Mappings unter LDAP -> Directories -> Active Directory und stell die Mappings so ein wie in dem angehangenen Screenshot

                      Bildschirmfoto 2011-11-03 um 15.45.01.png

                      1 Reply Last reply Reply Quote 0
                      • C Offline
                        cyberus
                        last edited by

                        COOL! COOL! COOL! 🙂

                        es funktioniert! allerherzlichsten Dank!

                        jetzt hab ich nur noch eine konzeptionelle Frage:

                        ich hab mich jetzt mit einem user anmelden wollen, der im AD existiert, im i-doit aber nicht angelegt ist:

                        "You need at least reading rights for logging in to an i-doit mandator.

                        Contact your system administrator for adding your user into a corresponsing right-group."

                        das bedeutet also, ich muss die user , welche im i-doit arbeiten sollen im i-doit anlegen? ich hatte das so verstanden, dass die user einfach nur im AD existent sein müssen (über den entsprechenden Filter) und dann zugang haben?

                        1 Reply Last reply Reply Quote 0
                        • dsD Offline
                          ds
                          last edited by

                          Die User müssen nur im LDAP existent sein, nicht im i-doit. Nach erstmaligem Login wird der User im i-doit automatisch angelegt. Wenn du die User automatisch einer Rechtegruppe zuweisen möchtest, machst du dir im AD z.B. eine i-doit-admins Gruppe, dann gehst du auf Kontakte -> Personengruppen -> Admin -> Personengruppen und setz das Feld "LDAP-Gruppe (Mapping):" auf deine AD Gruppe i-doit-admins. Dann sind die neu angelegten LDAP User aus der AD Gruppe automatisch i-doit Admins. Das Gleiche gilt natürlich auch für alle anderen Gruppen.

                          1 Reply Last reply Reply Quote 0
                          • C Offline
                            cyberus
                            last edited by

                            Super, so langsam verstehe ich.

                            Und wenn der user im AD sein passwort ändert?

                            funktioniert das?

                            also dass der user sich anmeldet, das passwort im i-doit falsch ist (weil er es nur im AD, nicht aber im i-doit geändert hat), i-doit am AD nachfragt und das i-doit PW durch das aus der AD überschreibt?

                            1 Reply Last reply Reply Quote 0
                            • C Offline
                              chmon
                              last edited by

                              hier meine attributes und die db config…

                              sieht doch alles wie bei dir aus ? oder?

                              attribute.PNG
                              sql.PNG

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post