0% found this document useful (0 votes)
101 views36 pages

The LDAP Protocol : Amrish Kaushik

The LDAP protocol allows clients to access and update directory information stored on LDAP servers. It uses a simpler model based on X.500 that uses TCP/IP instead of the full OSI stack. LDAP defines how information is structured and organized hierarchically in entries and attributes, and specifies core operations like search, add, modify and delete. It also describes basic authentication mechanisms and how security can be implemented to protect directory access.

Uploaded by

Anang Triastana
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views36 pages

The LDAP Protocol : Amrish Kaushik

The LDAP protocol allows clients to access and update directory information stored on LDAP servers. It uses a simpler model based on X.500 that uses TCP/IP instead of the full OSI stack. LDAP defines how information is structured and organized hierarchically in entries and attributes, and specifies core operations like search, add, modify and delete. It also describes basic authentication mechanisms and how security can be implemented to protect directory access.

Uploaded by

Anang Triastana
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

The LDAP Protocol…

Amrish Kaushik
Graduate Student
USC – Computer Science (CN)
Agenda
 Background and Motivation
 Understanding LDAP
 Information Structure
 Naming
 Functions/Operations
 Security
 Protocol Model
 Mapping onto Transport Services
 Protocol Element Encoding
 Discussion
Background and Motivation
 Increased reliance on networked
computers
 Need in information
 Functionality
 Ease-of-Use
 Administration (Application specific dirs)
 Clear and consistent organization
 Integrity
 Confidentiality
X.500
 X.500 standard. CCITT 1988
 Refer ISO 9594 – X.500-X.521 of 1990
X.500
 Organizes directory entries into a
hierarchical namespace
 Powerful search capabilities
 Often used for interfacing incompatible
directory services
 Used DAP for c/s communication
 DAP (App. Layer) requires ENTIRE OSI
stack to operate
 Too heavy for small environments
What is LDAP?
 Lightweight Directory Access Protocol
 Used to access and update information
in a directory built on the X.500 model
 Specification defines the content of
messages between the client and the
server
 Includes operations to establish and
disconnect a session from the server
LDAP Server: G/S
Understanding LDAP
 Lightweight alternative to DAP
 Uses TCP/IP instead of OSI stack
 Simplifies certain functions and omits
others…
 Uses strings rather than DAP’s ASN.1
notation to represent data.
LDAP
 Information
 Structure of information stored in an LDAP directory.
 Naming
 How information is organized and identified.
 Functional / Operations
 Describes what operations can be performed on the
information stored in an LDAP directory.
 Security
 Describes how the information can be protected
from unauthorized access.
LDAP Information Storage
LDAP Information Storage
 Each attribute has a type/syntax and a
value
 Can define how values behave during
searches/directory operations
 Syntax: bin, ces, cis, tel, dn etc.
 Usage limits: ssn – only one, jpegPhoto
– 10K
LDAP Information Storage
 Each ‘entry’ describes an object (Class)
 Person, Server, Printer etc.
 Example Entry:
 InetOrgPerson(cn, sn, ObjectClass)
 Example Attributes:
 cn (cis), sn (cis), telephoneNumber (tel),
ou (cis), owner (dn), jpegPhoto (bin)
LDAP Naming
 DNs consist of sequence of Relative DN
 cn=John Smith,ou=Austin,o=IBM,c=US
(Leaf 2 Root) (~use \ for special)
 Directory Information Tree (DIT)
 Follow geographical or organizational
scheme
 Aliases: Tree-like,
 Aliases can link non-leaf nodes
LDAP Naming
 Referrals: May not store entire DIT (v3)
 Referrals
 objectClass=referral, attribute=ref,
value=LDAPurl
 Implementation differs
 Refferals/Chaining (vendor)
 RFC 1777: server chaining is expected.
LDAP Naming
 Schema
 Defines what object classes allowed
 Where they are stored
 What attributes they have (objectClass)
 Which attributes are optional (objectClass)
 Type/syntax of each attribute (objectClass)
 Query server for info: zero-length DN
 LDAP schema must be readable by the
client
LDAP Naming Examples
Attribute Type String

CommonName CN

LocalityName L

StateorProvinceName ST

OrganizationName O

OrganizationalUnitName OU

CountryName C

StreetAddress STREET

domainComponent DC

Userid UID
LDAP Functions/Operations
 Authentication
 BIND/UNBIND
 ABANDON
 Query
 Search
 Compare entry
 Update
 Add an entry
 Delete an entry (Only Leaf nodes, no aliases)
 Modify an entry, Modify DN/RDN
Client and Server Interaction
 Client establishes session with server (BIND)
 Hostname/IP and port number
 Security
 User-id/password based authentication
 Anonymous connection - default access rights
 Encryption/Kerberos also supported
 Client performs operations
 Read/Update/Search
 SELECT X,Y,Z FROM PART_OF_DIRECTORY
 Client ends the session (UNBIND)
 Client can ABANDON the session
BIND/UNBIND/ABANDON
 Request includes LDAP version, the name the
client wants to bind as, authentication type
 Simple (clear text passwords, anonymous)
 Kerberos v4 to the LDAP server (krbv42LDAP)
 Kerberos v4 to the DSA server (krbv42DSA)
 Server responds with a status indication
 UNBIND: Terminates a protocol session
 UnbindRequest ::= [APPLICATION 2] NULL
 ABANDON:
 MessageID to abandon
Search/Compare
 Request includes
 baseObject: an LDAPDN
 Scope: how many levels to be searched
 derefAliases: handling of aliases
 sizeLimit: max number of entries returned
 timeLimit: max time allowed for search
 attrsOnly: return attribute types OR values also
 Filter: cond. to be fulfilled when searching
 Attributes: List of entry’s attributes to be returned
 Read and List implemented as searches
 Compare: similar to search but returns T/F
ADD/MODIFY/DELETE
 ADD request
 Entry: LDAPDN
 List of Attributes and values (or sets of values)
 MODIFY request
 Used to add, delete, modify attributes
 Request includes
 Object: LDAPDN
 List of modifications (atomic)
 Add, Delete, Replace
 DELETE request
 Object: LDAPDN
 MODIFY RDN: LDAPDN, newRDN, DEL_FLAG
Protocol Elements
 LDAPMessage (MessageID unique)
Protocol Elements
 LDAPString ::= OCTET STRING
 LDAPDN ::= LDAPString
 RelativeLDAPDN ::= LDAPString
 AttributeValueAssertion ::=
Sequence {
attributeType attributeValue,
attributeValue attributeValue
}
 attributeType ::= LDAPString
 attributeValue ::= OCTET STRING
Protocol Elements
 LDAP Result
 Errors
 Truncated DIT
RDN sequence is
sent
 noSuchObject
 aliasProblem
 invalidDNSyntax
 isLeaf etc.
LDAP Security
 Current LDAP version supports
 Clear text passwords
 KERBEROS version 4 authentication
 Other authentication methods possible
in future versions (March 1995)
 SASL support added in version 3
 Kerberos deemed stronger than SASL…
LDAP Security
 Security based on the BIND model
 Clear text  ver 1
 Kerberos  ver 1,2,3 (depr)
 SASL  ver 3
 Simple Authentication and Security Layer
 uses one of many authentication methods
 Proposal for Transport Layer Security
 Based on SSL v3 from Netscape
LDAP Security
 No Authentication
 Basic Authentication
 DN and password provided
 Clear-text or Base 64 encoded
 SASL (RFC 2222)
 Parameters: DN, mechanism, credentials
 Provides cross protocol authentication calls
 Encryption can be optionally negotiated
 ldap_sasl_bind() (ver3 call)
 Ldap://<ldap_server>/?supportedsaslmechanisms
LDAP Security
 LDAP using SASL using SSL/TLS
LDAP Security
 SSL/TLS Handshake
Agenda
 Background and Motivation
 Understanding LDAP
 Information Structure
 Naming
 Functions/Operations
 Security
 Protocol Model
 Mapping onto Transport Services
 Protocol Element Encoding
 Discussion
Protocol Model
 Clients performing protocol operations
against servers
 Client sends protocol request to server
 Server performs operation on directory
 Server returns response (results/errors)
 Asynchronous Server Behavior
Directory Client/Server
Interaction
Mapping onto Transport
 Uses Connection-oriented, reliable transport
 TCP
 LDAPMessage PDU mapped onto TCP byte stream
 LDAP listener on port 389
 Connection Oriented Transport Service
(COTS)
 LDAP PDU is mapped directly onto T-Data
Protocol Element Encoding
 Encoded for Exchange using BER (Basic
Encoding Rules)
 BER defined in Abstract Syntax Notation
One (ASN.1)
 High Overhead for BER
 Restrictions imposed to improve perf.
 Definite form of length encoding only
 Bit Strings/ Octet Strings and all character
string types encoded in primitive form only
LDAP Implementations
 C Library API
 LDAPv2 - RFC 1823 ‘The LDAP API’
 LDAPv3 – In Internet Draft stage
 Java JNDI
 LDAP v3 uses the UTF-8 encoding of
the Unicode character set.
 HTTP to LDAP gateway
 LDAP to X.500 gateway – ldapd
Version 2 v/s Version 3
 Referrals
 A server that does not store the requested data can
refer the client to another server.
 Security
 Extensible authentication using Simple Authentication
and Security Layer (SASL)
 Internationalization
 UTF-8 support for international characters.
 Extensibility
 New object types and operations can be dynamically
defined and schema published in a standard manner.

You might also like