Professional Documents
Culture Documents
Paulo Repa
repapaul@gmail.com
1 . 1 . 2 0 10 1
LDAP Paulo Repa
What is a directory?
2
LDAP Paulo Repa
cn=lpr1 cn=Lotty
cn=eng_lw3
3
LDAP Paulo Repa
Directory Solutions
4
LDAP Paulo Repa
UnixWare 7 Directory
5
LDAP Paulo Repa
Directory Setup
scoadmin ldap
6
LDAP Paulo Repa
Backend Setup
7
LDAP Paulo Repa
UnixWare 7 Directory
8
LDAP Paulo Repa
Attribute Schema
Defined in slapd.at.conf
Specifies attribute syntax
9
LDAP Paulo Repa
Objectclass Schema
objectclass simplePerson
requires
cn,
sn,
objectClass
allows Defines object contents
jpegPhoto, Defined in slapd.oc.conf
mail,
telephoneNumber,
userPassword,
creatorsName,
createtimestamp,
modifiersname,
modifytimestamp
10
LDAP Paulo Repa
UnixWare 7 Directory
11
LDAP Paulo Repa
ACLs
Controls access for read, write, search, compare and delete
operations
Entry or attribute level
Defined in slapd.acl.conf
ldapstop -i acme
ldapstart -i acme
12
LDAP Paulo Repa
UnixWare 7 Directory
13
LDAP Paulo Repa
14
LDAP Paulo Repa
UnixWare 7 Directory
15
LDAP Paulo Repa
LDIF
LDAP Data Interchange Format
Portable
Human readable (almost...)
dn: o=acme
objectclass: organization
o: acme
16
LDAP Paulo Repa
17
LDAP Paulo Repa
LDAP Commands
ldapsearch
ldapmodify
ldapadd
ldapdelete
ldapmodrdn
18
LDAP Paulo Repa
ldapsearch
19
LDAP Paulo Repa
ldapmodify
20
LDAP Paulo Repa
ldapadd
21
LDAP Paulo Repa
ldapdelete
22
LDAP Paulo Repa
ldapmodrdn
23
LDAP Paulo Repa
24
LDAP Paulo Repa
LDAP C API
#include <ldap.h>
#include <lber.h>
25
LDAP Paulo Repa
26
LDAP Paulo Repa
27
LDAP Paulo Repa
28
LDAP Paulo Repa
29
LDAP Paulo Repa
30
LDAP Paulo Repa
31
LDAP Paulo Repa
32
LDAP Paulo Repa
LDAPMod structure
One structure per attribute type
Add, delete and replace operations
Text or binary data
Multiple values
mod_op LDAP_MOD_ADD
mod_type “mailAliasMembers”
mod_values
“Joe”
“Lotty”
33
LDAP Paulo Repa
mod[0].mod_op = LDAP_MOD_ADD;
mod[0].mod_type = "cn";
mod[0].mod_values = cnvals;
mod[1].mod_op = LDAP_MOD_ADD;
mod[1].mod_type = "sn";
mod[1].mod_values = snvals;
mod[2].mod_op = LDAP_MOD_ADD;
mod[2].mod_type = "objectClass";
mod[2].mod_values = objvals;
mods[i] = NULL;
34
LDAP Paulo Repa
if (ldap_add_s(ld, “cn=John,ou=Marketing,o=acme”,&mods[0])
!= LDAP_SUCCESS) {
ldap_perror(ld, “add example”);
exit(EXIT_FAILURE);
}
35
LDAP Paulo Repa
36
LDAP Paulo Repa
mod[0].mod_op = LDAP_MOD_REPLACE;
mod[0].mod_type = "sn";
mod[0].mod_values = snvals;
mod[1].mod_op = LDAP_MOD_ADD;
mod[1].mod_type = ”telephoneNumber";
mod[1].mod_values = telvals;
mods[i] = NULL;
37
LDAP Paulo Repa
if (ldap_modify_s(ld,“cn=John,ou=Marketing,o=acme”,&mods[0])
!= LDAP_SUCCESS) {
ldap_perror(ld, “modify example”);
exit(EXIT_FAILURE);
}
dn: cn=John, ou=Marketing, o=acme
objectclass: simplePerson
cn: John
sn: Smithe
telephoneNumber: 958-2357
38
LDAP Paulo Repa
39
LDAP Paulo Repa
40
LDAP Paulo Repa
Bibliography
41