On Tue, 2008-03-25 at 18:55 +0100, Enrico Albertini wrote:
> Salve, sono Enrico Albertini.
> 
> Scrivo per chiedere aiuto. Il mio problema riguarda l'iserimento di una 
> entry nella mia directory ldap. Devo realizzare un'interfaccia web in 
> php che permetta di inserire un nuovo utente nella directory.
> 
> Gli schemi inportati nel file slapd.conf sono:
> 
> # Schema and objectClass definitions
> include         /etc/ldap/schema/core.schema
> include         /etc/ldap/schema/cosine.schema
> include         /etc/ldap/schema/nis.schema
> include         /etc/ldap/schema/inetorgperson.schema
> include         /etc/ldap/schema/samba.schema
> include         /etc/ldap/schema/krb5-kdc.schema
> 
> 
> 
> mentre il codice php che genera l'entry e la inserisce nella directory รจ:
> 
> $ldapConn = @ldap_connect( $LDAPServerName );
> 
> if( $ldapConn ) {
>    
>     @ldap_set_option( $ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3 );
>     @ldap_set_option( $ldapConn, LDAP_OPT_REFERRALS, 0 );
>     $r = @ldap_bind( $ldapConn, $LDAPWriterDN, $LDAPWriterPassword );
> 
>     // Set up LDAP attributes
>     $values["objectClass"] = "top";
>     $values["objectClass"] = "person";
>     $values["objectClass"] = "organizationalPerson";
>     $values["objectClass"] = "inetOrgPerson";
>     $values["objectClass"] = "posixAccount";
>     $values["objectClass"] = "krb5Principal";
>     $values["objectClass"] = "shadowAccount";
> 
>     $values["uid"] = $username;
>     $values["cn"] = $realname . " " . $realsurname;
>     $values["givenName"] = $realname;
>     $values["sn"] = $realsurname;
>     $values["mail"] = $mail;
>     $values["shadowLastChange"] = (int)(time() / 86400);
>     $values["shadowMax"] = 99999;
>     $values["shadowWarning"] = 7;
>     $values["krb5PrincipalName"] = $username . "@DOMINIO.IT";
>     $values["loginShell"] = "/bin/false";
>     $values["uidNumber"] = 1001;
>     $values["gidNumber"] = 1001;
>     $values["homeDirectory"] = "/home/" . $username ;
>     $values["gecos"] = $realname . " " . $realsurname;
>     $values["userPassword"] = $password;
> 
> 
>     $userDN = $LDAPSearchAttribute . "=" . $username . "," . 
> $LDAPWriteLocation;
> 
>     $r = @ldap_add( $ldapConn, $userDN, $values );
>    
>     if ( $r ) {
>        $UserIsRegister = true;
>     } else {
>        $UserIsRegister = false;
>     }
> 
>     @ldap_close( $ldapConn );
> }
> 
> 
> 
> L'inserimento non funziona, riporto la parte interessata del file di log:
> 
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 fd=15 ACCEPT from 
> IP=***.***.***.***:45428 (IP=***.***.***.***:389)
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 op=0 BIND 
> dn="cn=admin,dc=dominio,dc=it" method=128
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 op=0 BIND 
> dn="cn=admin,dc=dominio,dc=it" mech=SIMPLE ssf=0
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 op=0 RESULT tag=97 err=0 text=
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 op=1 ADD 
> dn="uid=prova,ou=People,dc=dominio,dc=it"
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 op=1 RESULT tag=105 err=65 
> text=no structural object class provided
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 op=2 UNBIND
> Mar 25 18:53:41 server5 slapd[4181]: conn=72 fd=15 closed
> 
> 
> Io proprio non sono riuscito a capire dove sbaglio, mi rivolgo a voi 
> sperando che mi possiate aiutare dall'alto della vostra esperienza.

Io stamperei l'array $values che crei nel tuo script prima di fare
ldap_add(), se leggo bene (non ho molta familiarita' con PHP) credo
troverai l'output interessante.

Simo.





_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap

Rispondere a