File di configurazione per i client
Configuriamo le impostazioni di default dei nostri client tramite il file ldap.conf
ldap.conf
Nel file ldap.conf possono essere immesse tutte quelle impostazioni di default che vogliamo utilizzare per i nostri programmi client, come ad esempio ldapsearch. In questo file si potrà immettere ad esempio l'indirizzo e la porta del nostro server ldap. Di seguito un primo file molto semplice
# # LDAP Client settings # URI ldap://127.0.0.1 BASE dc=example,dc=com BINDDN cn=Admin,dc=example,dc=com SIZELIMIT 0 TIMELIMIT 0
Dove nello specifico:
- con URI indicheremo l'indirizzo ip o l'hostname del nostro server ldap;
- con BASE indicheremo il DN di default per le operazioni che effettuerà il client;
- con BINDDN indicheremo il default DN utilizzato per l'amministrazione del server server ldap, da tenere presente che questa opzione è valida soltanto per gli utenti;
- con SIZELIMIT indicheremo al nostro client il numero massimo di record che potrà processare, questo parametro però non avrà validità lato server, ovvero se sul server andremo a specificare un valore inferiore di quello che indicherà il nostro client il demone slapd ignorerà il valore del client e lo sovrascriverà con il suo;
- con TIMELIMIT indicheremo il numero di secondi massimo da impiegare nell'operazione, per questo parametro valgono le stesse considerazioni di definizione lato server fatte per SIZELIMIT.
Prime connessioni
E' giunto il momento di provare a connetterci al nostro server ed iniziare ad effettuare qualche operazione, per fare questo niente di meglio che utilizzare il comando ldapsearch.
Ricerca generica del Root DSE
Per prima cosa lanciamo una semplice ricerca anche se al momento il nostro server ldap non contiene nessun dato
$ /usr/local/bin/ldapsearch -x -w passwordSegreta \ -D 'cn=Admin,dc=example,dc=com' -b "" -s base
Brevemente con il parametro -x chiediamo di utilizzare l'autenticazione semplice e con -w forniamo la password da utilizzare per l'autenticazione; con l'opzione -D indicheremo l'utente con il quale effettuare l'operazione; con -b indicheremo da dove iniziare la ricerca, e mettendolo a "" chiederemo al nostro server di restituirci il root DSE; con -s indicheremo lo "scope" della ricerca, che nel nostro caso è base. La ricerca dovrebbe restituire:
# extended LDIF # # LDAPv3 # base <> with scope baseObject # filter: (objectclass=*) # requesting: ALL # # dn: objectClass: top objectClass: OpenLDAProotDSE # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Dove possiamo vedere che la richiesta non ha generato errori (result 0).
Ricerca estesa del Root DSE
La precedente ricerca non ci ha restituito molte informazioni e per ovviare a questo possiamo eseguire:
$ /usr/local/bin/ldapsearch -x -w passwordSegreta \ -D 'cn=Admin,dc=example,dc=com' -b "" -s base \ '(objectclass=*)' '+' '*'
Che produrrà un listato di questo tipo:
# extended LDIF # # LDAPv3 # base <> with scope baseObject # filter: (objectclass=*) # requesting: + * # # dn: objectClass: top objectClass: OpenLDAProotDSE structuralObjectClass: OpenLDAProotDSE configContext: cn=config namingContexts: dc=example,dc=com supportedControl: 2.16.840.1.113730.3.4.18 supportedControl: 2.16.840.1.113730.3.4.2 supportedControl: 1.3.6.1.4.1.4203.1.10.1 supportedControl: 1.2.840.113556.1.4.319 supportedControl: 1.2.826.0.1.3344810.2.3 supportedControl: 1.3.6.1.1.13.2 supportedControl: 1.3.6.1.1.13.1 supportedControl: 1.3.6.1.1.12 supportedExtension: 1.3.6.1.4.1.4203.1.11.1 supportedExtension: 1.3.6.1.4.1.4203.1.11.3 supportedExtension: 1.3.6.1.1.8 supportedFeatures: 1.3.6.1.1.14 supportedFeatures: 1.3.6.1.4.1.4203.1.5.1 supportedFeatures: 1.3.6.1.4.1.4203.1.5.2 supportedFeatures: 1.3.6.1.4.1.4203.1.5.3 supportedFeatures: 1.3.6.1.4.1.4203.1.5.4 supportedFeatures: 1.3.6.1.4.1.4203.1.5.5 supportedLDAPVersion: 3 supportedSASLMechanisms: CRAM-MD5 supportedSASLMechanisms: DIGEST-MD5 supportedSASLMechanisms: NTLM entryDN: subschemaSubentry: cn=Subschema # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Qui possiamo trovare già alcune informazioni interessanti, come:
- namingContexts, che conterrà il nostro DN;
- supportedLDAPVersion, che ci indicherà la versione supportata di LDAP;
- supportedSASLMechanisms, che conterrà le autenticazioni SASL supportate.
