The LDAP Protocol. Agenda Background and Motivation Understanding LDAP Information Structure Naming Functions/Operations Security Protocol Model Mapping.

Slides:



Advertisements
Similar presentations
SOAP.
Advertisements

Secure Socket Layer.
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
Internet Security Protocols
Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
BASIC CRYPTOGRAPHY CONCEPT. Secure Socket Layer (SSL)  SSL was first used by Netscape.  To ensure security of data sent through HTTP, LDAP or POP3.
Lightweight Directory Access Protocol (LDAP) By Raghavendra Aekka Professor Dr. Ravi Mukkamala.
LDAP Lightweight Directory Access Protocol LDAP.
Naming Computer Engineering Department Distributed Systems Course Asst. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2014.
LDAP Jianwen Luo School of CTI, Depaul Univ. Oct.23, 1998.
TCP/IP Protocol Suite 1 Chapter 21 Upon completion you will be able to: Network Management: SNMP Understand the SNMP manager and the SNMP agent Understand.
Directory & Naming Services CS-328 Dick Steflik. A Directory.
CS603 Directory Services January 30, Name Resolution: What would you like? Historical? –Mail –Telephone DNS? X.500 / LDAP? DCE? ActiveDirectory?
3.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 3: Introducing Active Directory.
SNMP Simple Network Management Protocol
LDAP LIGHT WEIGHT DIRECTORY ACCESS PROTOCOL PRESENTATION BY ALAKESH APURVA DHAN AND ASH.
Network Protocols UNIT IV – NETWORK MANAGEMENT FUNDAMENTALS.
Directory and File Transfer Services Chapter 7. Learning Objectives Explain benefits offered by centralized enterprise directory services such as LDAP.
Internet-Based Client Access
Network Protocols. Why Protocols?  Rules and procedures to govern communication Some for transferring data Some for transferring data Some for route.
1 Internet Based Applications Lightweight Directory Access Protocol (LDAP) Piotr Wierzejewski.
LDAP Lightweight Directory Access Protocol LDAP.
23/4/2001LDAP Overview - HEPix - LAL 2001 LDAP Overview HEPix – LAL Apr Michel Jouvin
Netprog: LDAP1 Lightweight Directory Access Protocol (LDAP) Refs: –Netscape LDAP server docs – U. of Michigan LDAP docs – docs –RFCs:
LDAP Search Criteria Fall 2004 Rev. 2. LDAP Searches Can be performed on Single directory entry Contents of a single container Entire subtree Required.
EDirectory Update with Gary J Porter MindWorks, Inc.
Survey of Identity Repository Security Models JSR 351, Sep 2012.
LIGHT WEIGHT DIRECTORY ACCESS PROTOCOL Presented by Chaithra H.T.
The Directory A distributed database Distributed maintenance.
Behzad Akbari Spring 2012 (These slides are based on lecture slides by Lawrie Brown)
LDAP: LDIF & DSML Fall 2004 Rev. 2. LDIF Light-weight Data Interchange Format RFC 2849 Common format to exchange data entry schema.
Active Directory. Computers in organizations Computers are linked together for communication and sharing of resources There is always a need to administer.
Implementing LDAP Client/Server System for Directory Service By Maochun Sun Project Advisor: Dr. Chung-E Wang Department of Computer Science California.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
“Windows Networking” ITL. © Hans Kruse & Shawn Ostermann, Ohio University 2 Overview Networking under Windows Mixture of applications and protocols.
LDAP (Lightweight Directory Access Protocol ) Speaker: Chang-Yu Wu Adviser: Quincy Wu Date:2007/08/22.
Identity Management Technical Training LDAP and Directory Services Joachim Andres Guillaume Andru Renaud Métrich Sun Microsystems, Inc.
William Stallings Data and Computer Communications
Protocols COM211 Communications and Networks CDA College Olga Pelekanou
LDAP (Lightweight Directory Access Protocol)
REST By: Vishwanath Vineet.
LDAP- Protocol and Applications. Role of LDAP Allow clients to access a directory service Directories hold hierarchical structured information Clients.
Spring LDAP Dima Ionut Daniel.
Hussain Ali Department of Computer Engineering KFUPM, Dhahran, Saudi Arabia Active Directory.
Active Directory. Computers in organizations Computers are linked together for communication and sharing of resources There is always a need to administer.
LDAP Lightweight Directory Access Protocol LDAP.
JAVA LDAP Dima Ionut Daniel. Contents What is LDAP? LDAP Operations Directory Service JNDI as LDAP API Pooling Spring LDAP UnboundId LDAP SDK JAVA LDAP.
Directory Services CS5493/7493. Directory Services Directory services represent a technological breakthrough by integrating into a single management tool:
SOAP, Web Service, WSDL Week 14 Web site:
IEEE SISWG (P1619.3)‏ Messaging & Transport. AGENDA Transport Protocols & Channel Protection Messaging Layer Capability Exchange & Authentication Groups.
1 Directory Services  What is a Directory Service?  Directory Services model  Directory Services naming model  X.500 and LDAP  Implementations of.
MQTT-255 Support alternate authenticaion mechanisms
Hypertext Transfer Protocol
Introduction to LDAP Frank A. Kuse.
Layered Architectures
LDAP
News from the wonderful world of directories
LDAP – Light Weight Directory Access Protocol
Introduction to Name and Directory Services
Architecture Competency Group
Lightweight Directory Access Protocol (LDAP)
UNIVERSITY INSTITUTE OF TECHNOLOGY
Amrish Kaushik Graduate Student USC – Computer Science (CN)
ACTIVE DIRECTORY An Overview.. By Karan Oberoi.
LDAP LIGHT WEIGHT DIRECTORY ACCESS PROTOCOL
Presentation transcript:

The LDAP Protocol

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

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 TypeString CommonNameCN LocalityNameL StateorProvinceNameST OrganizationNameO OrganizationalUnitNameOU CountryNameC StreetAddressSTREET domainComponentDC UseridUID

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 { attributeTypeattributeValue, attributeValueattributeValue } 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:// /?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

LDAP v2 (Draft Standard) RFC 1777: LDAP v1 RFC 1778: The String Representation of Standard Attribute Syntaxes RFC 1779: A String Representation of Distinguished Names RFC 1959: An LDAP URL Format RFC 1960: A String Representation of LDAP Search Filters

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.