Ti ringrazio, ho risolto. Chissa' a cosa pensavo mentre scrivevo il
codice! :)
enrico
simo ha scritto:
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.
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.
_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap