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";
A occhio, senza essere un esperto di PHP, stai assegnando a
$values["objectClass"], ovvero allo stesso elemento dell'array values
valori diversi, ma alla fine l'ultimo e' l'unico che rimane. Siccome
"shadowAccount" non e' objectClass strutturale, ecco l'errore.
$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.
Ciao, p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
---------------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Email: [EMAIL PROTECTED]
---------------------------------------
_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap