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