Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login
    1. Home
    2. datenwerk-it
    3. Posts
    D
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 6
    • Groups 0

    Posts

    Recent Best Controversial
    • Code-quality -> Spaghetti-Code versus Objektorientiert

      Hallo liebe Entwickler,

      ich kämpfe mich gerade durch den Code zwecks LDAP-Debugging und tu mich echt schwer.
      In einer Funktion die sich "fetch_mandators" nennt, wird nicht nur nach den LDAP-Instanzen gefahndet, sondern gleich auch noch überprüft, ob der anzumeldende user im LDAP vorhanden ist. Als ob das nicht genug ist, wird auch gleich noch gecheckt, ob er in der Datenbank angelegt ist, ggf. neu angelegt und die gruppenzugehörigkeit gecheckt.

      Da geht die Übersichtlichkeit schnell mal verloren.
      Ich sehe z.B. nicht, dass bei einem einmal angelegten user die LDAP-Gruppen-Zugehörigkeit aktualisiert wird. (Warum steht das überhaupt in der Datenbank?)

      Gerade in diesem Umfeld (LDAP, authentifizierung) ist doch eine schöne objektorientierte Herangehensweise gefragt.
      Dann kann man auch viel einfacher neue LDAP-Module implementieren (je LDAP eine neue Klasse?). Die Schnittstellen zwischen Auth-Code und LDAP kann damit transparenter werden (gibt es in PHP so etwas wie Interfaces?).

      Das Tool macht einen gut durchdachten Eindruck (selbst die Dokumentation, ehrlich!) aber bei dem Code stelle ich in Frage, ob ich das überhaupt produktiv einsetzen möchte 😞
      Bisher habe ich nur die LDAP-Schnittstelle angeschaut. Mag sein das das anderswo besser aussieht.

      Marcus

      posted in Entwicklung
      D
      datenwerk-it
    • RE: I-doit Ldap

      Das ist eine spannende Frage. irgendwo hier?

      
      grep "uid" -R src/* | grep -v luid
      src/classes/libraries/nusoap/nusoap.php:                // debugging guides.
      src/classes/libraries/phpmailer/LICENSE:decision will be guided by the two goals of preserving the free status
      src/classes/workflow/dao/list/isys_workflow_dao_list_filter.class.php:                                                                                         $_GET["uid"],
      src/classes/workflow/view/isys_workflow_view_list_filter.class.php:             $_POST["f_uid"] = isys_glob_get_param("f_uid");
      src/classes/workflow/view/isys_workflow_view_list_filter.class.php:             if (isset($_POST["f_uid"])) {
      src/classes/workflow/view/isys_workflow_view_list_filter.class.php:                     $l_user_id = $_POST["f_uid"];
      src/classes/workflow/view/isys_workflow_view_tree.class.php:            $l_gets["uid"]                                  = $_SESSION["session_data"]["isys_user_session__isys_person_intern__id"];
      src/themes/default/smarty/templates/workflow/filter.tpl:                          <label for="f_uid">[{isys type="lang" ident="LC__CREATOR"}]</label> 
      src/themes/default/smarty/templates/workflow/filter.tpl:                             [{isys name="f_uid" type="f_dialog" p_bInfoIconSpacer="0" p_strSelectedID=$g_post.f_uid p_strTable="isys_person_intern" p_bEditMode="1"}]
      
      
      posted in Allgemein
      D
      datenwerk-it
    • RE: LDAP Success ist ein fehler –> im LDAP-Modul

      LDAP-debug output

      
      2009-05-05 11:48:43 ldap: Creating new ldap-library connection to: adm001:389, user: CN=admin,DC=ebox
      2009-05-05 11:48:43 ldap: Connected to adm001
      2009-05-05 11:48:43 ldap: Trying auth with DN: uid=testuser,ou=Users,dc=ebox
      2009-05-05 11:48:43 ldap: IN try_auth(): Username. 'uid=testuser,ou=Users,dc=ebox' - Password: 'tester'
      2009-05-05 11:48:43 ldap: uid=testuser,ou=Users,dc=ebox / testuser authenticated.
      2009-05-05 11:48:43 ldap: Creating new ldap-library connection to: adm001:389, user: CN=admin,DC=ebox
      2009-05-05 11:48:43 ldap: Connected to adm001
      2009-05-05 11:48:43 ldap: Trying auth with DN: uid=testuser,ou=Users,dc=ebox
      2009-05-05 11:48:43 ldap: IN try_auth(): Username. 'uid=testuser,ou=Users,dc=ebox' - Password: 'tester'
      2009-05-05 11:48:43 ldap: uid=testuser,ou=Users,dc=ebox / testuser authenticated.
      
      

      syslog-output

      
      May  5 11:48:43 adm001 slapd[24683]: conn=723 fd=22 ACCEPT from IP=127.0.1.1:44828 (IP=0.0.0.0:389)
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=0 BIND dn="cn=admin,dc=ebox" method=128
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=0 BIND dn="cn=admin,dc=ebox" mech=SIMPLE ssf=0
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=0 RESULT tag=97 err=0 text=
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=1 SRCH base="" scope=1 deref=0 filter="(cn=uid=testuser,ou=users,dc=ebox)"
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=1 SRCH attr=cn
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=2 BIND anonymous mech=implicit ssf=0
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=2 BIND dn="uid=testuser,ou=Users,dc=ebox" method=128
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=2 BIND dn="uid=testuser,ou=Users,dc=ebox" mech=SIMPLE ssf=0
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=2 RESULT tag=97 err=0 text=
      May  5 11:48:43 adm001 slapd[24683]: conn=723 op=3 UNBIND
      May  5 11:48:43 adm001 slapd[24683]: conn=723 fd=22 closed
      May  5 11:48:43 adm001 slapd[24683]: conn=724 fd=22 ACCEPT from IP=127.0.1.1:44829 (IP=0.0.0.0:389)
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=0 BIND dn="cn=admin,dc=ebox" method=128
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=0 BIND dn="cn=admin,dc=ebox" mech=SIMPLE ssf=0
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=0 RESULT tag=97 err=0 text=
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=1 SRCH base="" scope=1 deref=0 filter="(cn=uid=testuser,ou=users,dc=ebox)"
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=1 SRCH attr=cn
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=2 BIND anonymous mech=implicit ssf=0
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=2 BIND dn="uid=testuser,ou=Users,dc=ebox" method=128
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=2 BIND dn="uid=testuser,ou=Users,dc=ebox" mech=SIMPLE ssf=0
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=2 RESULT tag=97 err=0 text=
      May  5 11:48:43 adm001 slapd[24683]: conn=724 op=3 UNBIND
      May  5 11:48:43 adm001 slapd[24683]: conn=724 fd=22 closed
      
      

      Was mich wundert, ist, dass idoit nicht durch die Gruppen im LDAP iteriert um herauszubekommen, ob der User in der LDAP-ADMIN-Gruppe ist, bzw welche Rechte gemappt werden müssen.

      Aktuelles Mapping:

      
      Username:  	cn
      Groups: 	cn
      Firstname: 	cn
      Lastname: 	sn
      Mail address: 	Mail
      Object class: 	posixAccount
      
      

      Admin (idoit) –> Administrators (LDAP)

      Group Administrators in LDAP:

      
      cn		:Administrators
      displayName	:Administrators
      gidNumber	:4711
      memberUid	: USER1
      		: testuser
      		: USER(n)
      
      posted in Entwicklung
      D
      datenwerk-it
    • LDAP Success ist ein fehler –> im LDAP-Modul

      Hallo liebe Entwickler,

      hier steht ja mein letzter Post zum thema LDAP. Ich habe ein wenig geforscht und bleibe hier hängen:
      in /src/classes/components/isys_component_session.class.php Zeile 240:

      if ($l_found_user["dn"] && $l_ldap_library->try_auth($l_found_user["dn"], $p_password)) {
      

      Diese Abfrage liefert einen fehler zurück.
      Die abschließende Debug-Meldung liefert den 'Fehlerwert' 'Success' zurück ???

      } else $g_mod_ldap->debug("** Auth failed. " . $l_ldap_library->get_ldap_error());
      

      Die Methode 'try_auth' in ldapi_acc.class.php

      	public function try_auth($p_username, $p_password) {
       		if (strpos($p_username, "CN=") !== 0) {
      			$l_username = $this->get_dn_by_username($p_username);
       		} else $l_username = $p_username;
      
       		if (!empty($l_username)) {
      			return $this->bind($l_username, $p_password);
       		}
       	}
      

      würde ich gerne einmal mit debug-code versehen. könnt ihr mir dabei helfen?

      PS: ist dieses "CN=" dafür verantwortlich, dass die Abfrage fälschlicherweise 'conn=3898 op=2 SRCH base="ou=Users,dc=ebox" scope=1 deref=0 filter="(cn=uid=USER1,ou=users,dc=ebox)"' heißt?
      –> cn=uid=???

      posted in Entwicklung
      D
      datenwerk-it
    • RE: I-doit Ldap

      Ich habe noch ein wenig geforscht. Vielleicht kann ja mal jemand schauen, ob wir das damit nicht hinbekommen.

      meine Mappings:

      
      –--------------------------------------
      | i-doit               | Open LDAP     |
      ----------------------------------------
      | Username:            | cn            |
      | Groups:              | gidNumber     |
      | Firstname:           | cn            |
      | Lastname:            | sn            |
      | Mail address:        | mail          |
      | Object class:        | posixAccount  |
      ----------------------------------------
      
      

      LDAP-Log beim Login des users 'USER1'

      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 fd=18 ACCEPT from IP=127.0.1.1:47703 (IP=0.0.0.0:389)
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=0 BIND dn="cn=admin,dc=ebox" method=128
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=0 BIND dn="cn=admin,dc=ebox" mech=SIMPLE ssf=0
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=0 RESULT tag=97 err=0 text=
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=1 SRCH base="ou=Users,dc=ebox" scope=1 deref=0 filter="(&(objectClass=inetOrgPerson)(cn=USER1))"
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=1 SRCH attr=gidNumber posixAccount cn sn mail cn
      Apr 29 15:27:16 adm001 slapd[20107]: <= bdb_equality_candidates: (cn) not indexed
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=2 SRCH base="ou=Users,dc=ebox" scope=1 deref=0 filter="(cn=uid=USER1,ou=users,dc=ebox)"
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=2 SRCH attr=cn
      Apr 29 15:27:16 adm001 slapd[20107]: <= bdb_equality_candidates: (cn) not indexed
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=2 SEARCH RESULT tag=101 err=0 nentries=0 text=
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 op=3 UNBIND
      Apr 29 15:27:16 adm001 slapd[20107]: conn=100 fd=18 closed
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 fd=18 ACCEPT from IP=127.0.1.1:47704 (IP=0.0.0.0:389)
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=0 BIND dn="cn=admin,dc=ebox" method=128
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=0 BIND dn="cn=admin,dc=ebox" mech=SIMPLE ssf=0
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=0 RESULT tag=97 err=0 text=
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=1 SRCH base="ou=Users,dc=ebox" scope=1 deref=0 filter="(&(objectClass=inetOrgPerson)(cn=USER1))"
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=1 SRCH attr=gidNumber posixAccount cn sn mail cn
      Apr 29 15:27:16 adm001 slapd[20107]: <= bdb_equality_candidates: (cn) not indexed
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=2 SRCH base="ou=Users,dc=ebox" scope=1 deref=0 filter="(cn=uid=USER1,ou=users,dc=ebox)"
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=2 SRCH attr=cn
      Apr 29 15:27:16 adm001 slapd[20107]: <= bdb_equality_candidates: (cn) not indexed
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=2 SEARCH RESULT tag=101 err=0 nentries=0 text=
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 op=3 UNBIND
      Apr 29 15:27:16 adm001 slapd[20107]: conn=101 fd=18 closed

      Marcus

      posted in Allgemein
      D
      datenwerk-it
    • RE: I-doit Ldap

      Hallo, zusammen,
      @bcd:

      Ldap Debug.txt
      2009-04-03 11:46:13 ldap: Found DN: uid=peter,ou=ACCOUNTS,dc=ldap-test,dc=de
      2009-04-03 11:46:13 ldap: ** Auth failed. Success
      2009-04-03 11:46:13 ldap: *** Unexpected result received from ldap_login() in isys_component_session.
      2009-04-03 11:46:13 ldap: *** false

      gibt es hierfür schon eine Lösung?
      Ich habe das selbe Problem. So verstehe ich das:

      Der User benötigt eine 'Liste aller Gruppen' in denen er Mitglied ist. Diese ist dann im Mapping unter 'Groups' einzutragen.

      Ich habe aber in der Gruppendefinition eine 'Liste aller User' die in der jew. Gruppe sind. (Also reverse-Logik) Das ist, so wie ich diesen Thread lese, auch das Problem von bcd.

      Kann jemand einmal das Mapping erklären, falls ich das falsch verstehe?

      Meine Konfig.

      • Ubuntu 8.04 (Server, 64 bit) mit OpenLDAP (ebox 1.0 Implementierung)

      • I-doIt 0.9.6-1

      • Nagios und LDAP-Plugin

      posted in Allgemein
      D
      datenwerk-it