Title: Internet infrastructure
1Internet infrastructure
- Prof. dr. ir. André Mariën
2Lightweight DirectoryAccess Protocol
3LDAP
4Directory
- Directory searchable information repository
- The best known non-IT example is a telephone
directory (the book) - Contains names, addresses, telephone numbers
- Searchable by location and name
- Electronic variants
- Also search by number, subparts, ZIP codes, ...
5IT Directories
- Network configuration
- host to IP translation, user/password
information, ... - User information
- telephone, email, certificates, physical location
- Security
- Authentication, authorization, SSO, PKI
- Resources
- Calendar, room reservations
6Increasing requirements
- Consolidation of directories (N1 problem)
- Centralized management
- Consistency of information
- Availability of information
- Timeliness of information
- Large data volumes
7Implementations
- Files
- Dedicated services
- DNS
- DHCP
- YP, NIS
- On top of DBMS
8Example scenario
Network logon
Web server
LDAP
Certificate (SSLv3)
Web server
Authorization
Application server
Personalization
Personalization
9LDAP D for Directory
- Directory standard ISO X.500
- X.500 protocol Directory Access Protocol (DAP)
- Lightweight Directory Access Protocol (v3)
- X.500 directory server, acronym DSA
10LDAP models
- Information model
- Kind of data that the directory can contain
- Naming model
- Data structuring by name
- Functional model
- Access (search updates)
- Security model
- Data protection measures
11LDAP elements and structure
12Directory Information Tree
- DIT is made up of entries or objects
- naming context (from RFC)
- The largest collection of entries, starting at
an entry that is mastered by a particular server,
and including all its subordinates and their
subordinates, down to the entries which are
mastered by different servers
13DIT graph
okuleuven.ac.be
oucs
l200A
cnAndré Mariën
14Objects
15Objects
- An LDAP directory is build from objects
- Objects have an object identifier (OID)
- Objects have names
- Objects belong to at least one class
- Objects have attributes
16Example objects
- People
- Resources
- Groups
- Roles
- Systems
17Object Identifier
- Representation dotted decimal
- OID not intended for end-users
- Universally unique
- Example
- INTEGER 1.3.6.1.4.1.1466.115.121.1.27
- all LDAP types OID identical except for last
number
18Official OID IANA
- Internet Assigned Numbers Authority IANA
- http//www.iana.org/numbers.html
19OID registration
- register base OID 1.3.6.1.4.1.X
- Prefix iso.org.dod.internet.private.enterprise
(1.3.6.1.4.1) - IBM 2, SUN 42, NOKIA 94, INTEL 343, CIA 743,
Accenture 945, Bekaert 972, Tivoli 1598,
Generale Bank 2049, Ubizen 4910, K.U.Leuven
9678
20Example of local structure
- organizations OID 1.3.6.1.4.1.9678
- SNMP 1.3.6.1.4.1.9678.1
- LDAP 1.3.6.1.4.1.9678.2
- attribute types 1.3.6.1.4.1.9678.2.1
- myattribute 1.3.6.1.4.1.9678.2.4000
- object classes 1.3.6.1.4.1.9678.2.2
- myobjectclass 1.3.6.1.4.1.9678.2.2.314
21Objects and Attributes
- Objects have attributes
- Attribute one or more values of the attribute
type - Order of attribute values
- undefined and implementation-dependent
- MUST NOT be relied upon.
22Object Naming DN - RDN
- Relative Distinguished Name (RDN)
- One or more attribute values from the object form
its relative distinguished name (RDN), which
MUST be unique among all its siblings - Distinguished Name (DN)
- The concatenation of the RDNs of the sequence of
entries from a particular entry to an immediate
subordinate of the root of the tree forms that
entry's DN - DN is unique in the tree
23RDN
RDN A,B RDN P A1,B2
P
A1,B2
RDN C RDN Q C1
Q
C2,E2
C1,D2
RDN F,G RDN R F1,G1 RDN S F1,G2
F1,G2,I2
F1,G1,H3
R
S
24DN
DN P A1,B2
P
A1,B2
DN Q C1,A1
Q
C2,E2
C1,D2
DN R F1,G1,C1,A1,B2 DN S
F1,G2,C1,A1,B2
F1,G2,I2
F1,G1,H3
R
S
25Attributes and Syntaxes
26Attribute Type
- The attribute type governs whether
- there can be more than one value of an attribute
of that type in an entry - the syntax to which the values must conform
- the kinds of matching which can be performed on
values of that attribute
27Attribute Type Description
- Identification OID, NAME, DESC, OBSOLETE
- Inheritance SUP
- Syntax SYNTAX
- Matching EQUALITY, ORDERING, SUBSTR
- Flags SINGLE-VALUE, COLLECTIVE,
NO-USER-MODIFICATION - Usage USAGE
28Attribute types usage
- "userApplications default
- "directoryOperation"
- "distributedOperation DSA-shared
- "dSAOperation DSA-specific, value depends on
server
29Attribute types constraint
- must have either
- "SUP inheritance
- "SYNTAX definition
30Syntaxes Escaping
- Escape the following separator symbol character
(such as "' or "" or "") if it occurs in that
string - backslash followed by a pair of hexadecimal
digits - Backslash itself encoded as '\5C' or '\5c
31Extensibility and Interoperability
- Other syntaxes allowed
- Additional arbitrary syntaxes strongly
deprecated - client and server implementations do not
dynamically recognize new syntaxes - In most cases attributes will be defined with the
syntax for directory strings
32Object Classes
33The objectClass attribute
- Object must belong gt 1 object class
- Object must have an objectClass attribute
- Values the object classes with which the entry
complies - Objectclasses determine the possible object
attributes - mandatory union of all mandatory
- optional union of all optional \ mandatory
34objectClass attribute
objectClassoc
DNoc
att1v1
Mustatt1
att2v2
Mustatt2
att3v3
Mayatt3
att3v4
35Object Classes
- The format for representation of object classes
X.501 - Kind of classes
- abstract class ("top" or "alias")
- similar to Java abstract class
- structural object class
- normal classes
- auxiliary object class
- similar to interfaces in Java
36Object Class BNF
- ObjectClassDescription "(" numericoid
- "NAME" qdescrs "DESC" qdstring
- "OBSOLETE"
- "SUP" oids
- ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" )
- "MUST" oids "MAY" oids
- ")"
37Attribute inheritance
- objectClass has a superClass
- top is the base objectClass
- inheritance if objectClass o has superClass s
then - all attributes of objectClass and those implied
by s are possible attributes of o - any mandatory attributes of o or implied by s
must be present
38Inheritance
objectClassoc
DNoc
att1v1
Mustatt1
att2v2
SUPsup
att3v3
DNsup
att3v4
Mustatt2
Mayatt3
39Special Object Class Extensible
- if present in an entry, permits that entry to
optionally hold any attribute - mandatory attributes still required to be
present. - servers which do not support extensible will
reject requests - to add entries which contain this object class
- to modify an entry to add this object class
40Operational Attributes
- used by servers for administering the directory
system itself - not returned in search results unless explicitly
requested by name - maintained automatically by the server
- not modifiable by clients
41Operational Attributes audit
- creatorsName
- the DN of the user who added this entry to the
directory. - createTimestamp
- the time this entry was added to the directory.
- modifiersName
- the DN of the user who last modified this entry.
- modifyTimestamp
- the time this entry was last modified.
42Directory Schema
43Schema
- Schema is the collection of
- attribute type definitions
- object class definitions
- to determine
- how to match a filter or attribute value
assertion (in a compare operation) against the
attributes of an entry - permissions for add and modify operations
44Operational Attribute subschema
- subschemaSubentry the DN of the subschema entry
which controls the schema for this entry - Allows reflection
- Enables more dynamic usage
- Simplifies extension support
45Subschema Entries
- Used for administering information about the
directory schema - object classes
- attribute types
- A single subschema entry contains all schema
definitions used by entries in a particular part
of the directory tree.
46Object Class Subschema
- Used in the subschema entry
- BNF
- ( 2.5.20.1 NAME 'subschema'
- AUXILIARY
- MAY ( DITStructureRules nameForms
DITContentRules objectClasses attributeTypes
matchingRules matchingRuleUse ) - )
47Subschema Attributes mandatory
- must be present
- cn to form the RDN of the subschema entry
- objectClass minimal "top and "subschema"
- objectClasses all used classes
- attributeTypes all used types
48Subschema Attributes optional
- may be present
- matchingRules, matchingRuleUse,
DITStructureRules, DITContentRules, nameForms and
LDAPSyntaxes
49Server-specific Data Requirements
- An LDAP server MUST provide information about
itself and other information that is specific to
each server - information is represented as a group of
attributes - located in the root DSE (DSA-Specific Entry)
- named with the zero-length LDAP DN
- retrievable with a base object search of the root
with filter "(objectClass)"
50Attributes of the root DSE
- namingContexts naming contexts held in the
server - subschemaSubentry subschema entries (or
subentries) known by this server. - altServer alternative servers in case this one
is later unavailable. - supportedExtension list of supported extended
operations.
51Attributes of the root DSE (cont.)
- supportedControl list of supported controls.
- supportedSASLMechanisms list of supported SASL
security features. - supportedLDAPVersion LDAP versions implemented
by the server.
52subschemaSubentry
- not present in the root DSE if server does not
- master the entries
- know the locations of schema information
- otherwise
- any number of values of the subschemaSubentry
attribute
53Overview
Directory Schema
DIT
Subschema Rule
Subschema Area
Object Classes
Entries
Attribute Types
Attributes
Syntax rules
Values
determine
uses
part of