ldapint/whatisldap.txt

Thu, 28 Feb 2013 21:46:37 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 28 Feb 2013 21:46:37 +0100
changeset 22
545df6643bcd
parent 0
a172bf9d21f8
permissions
-rw-r--r--

Introduce production changes, mention online lecture URL, and
integrate quick meme according to suggestion from Mike ELIAS.

     1 LDAP integration, 30 minute presentation
     2 Lightweight Directory Access Protocol
     3 Audience: Network and software engineers
     5 Author and speaker
     6 ------------------
     7 Michael Schloh von Bennewitz, Europalab Networks
     8 web: http://michael.schloh.com/
     9 email: michael@schloh.com
    10 isdn: +49(89)44239885
    11 voip: sips:michael@schloh.com
    13 What is LDAP?
    14 -------------
    15 IP technology providing fast directory read access.    +-------------------+
    16 Part of most (if not all) Unix and Linux distros.      | ISO Model   LDAP  |
    17 Good integration in Blackberry, Android, and IPhone.   |   Transport TCP   |
    18 Standardized by the IETF in RFC 4510 and many others.  +-------------------+
    20 Typical use cases
    21 -----------------
    22 1) Telephone directory.
    23 2) Corporate address book.
    24 3) Employee ID card directory.
    25 4) Password directory.
    26 5) Recipe collection?
    27 X) Utility crosses boundary of SQL technology.
    29 Comparing LDAP with SQL
    30 -----------------------
    31 LPAP is a protocol, SQL is a language.
    32 Tuned for reading, tuned for balanced use.
    33 SQL provides transactions, consistency, LDAP doesn't.
    35 LDAP and SQL round trip comparison (UML sequence diagrams)
    36 ----------------------------------------------------------
    37 LDAP client binds to a LDAP server and stores the connection.
    38 client uses the LDAP connection to send queries to the server.
    39 The server searches a LDAP directory for the specified attributes.
    40 The server replies with the matched attributes along with values.
    42 LDAP Mainstream acceptance
    43 --------------------------
    44 Most are enterprise use cases
    45 1) Suse makes widespred use of LDAP
    46 2) MS Active Directory based on LDAP
    47 3) Apple ease of use LDAP in Addressbook
    48 4) Email address autocompletion
    49      Kontact, Evolution, Thunderbird, iMail, Outlook
    50 5) IP hardphones and softphones (Nokia is missing)
    51      Snom, Polycom, Cisco, Ekiga, SFLPhone
    53 LDAP Popular implementations
    54 ----------------------------
    55 OpenLDAP (GPLv2)
    56 Mozilla C/Java
    57 Alcatel-Lucent
    58 Alot of others
    60 ------------------------ Technical chapter ------------------------
    62 OpenLDAP Helloworld
    63 -------------------
    64 int main(int argc, char *argv[]) {
    65     ldap_initialize(&ld, "ldaps://name.host.com:636/");
    66     ldap_simple_bind_s(ld, "uid=username,ou=people,dc=host,dc=com", "mypasswordhere");
    67     ldap_search_s(ld, "dc=intern,dc=host,dc=com", LDAP_SCOPE_SUBTREE, "(sn=Chambe-Eng)", NULL, 0, &result);
    68     dn = ldap_get_dn(ld, ldap_first_entry(ld, result));
    69     printf("dn: %s\n", dn);
    70     ldap_memfree(dn);
    71     ldap_msgfree(result);
    72     ldap_unbind(ld);
    73 }
    75 $ cc -c helloldap.c && cc helloldap.o -lldap -llber && ./a.out
    76 dn: uid=Chambe-Eng,ou=scandinavia,ou=people,dc=intern,dc=host,dc=com
    78 Typical LDAP attrbutes in an addressbook
    79 ----------------------------------------
    80   Dn (Distinguished name)
    81   Cn (common name)
    82   Uid
    83   Givenname
    84   Surname
    85   Displayname
    86   ...
    88 LDAP Glossary
    89 -------------
    90 Directory ~= SQL database
    91 Attribute ~= SQL column
    92 Value ~= SQL value
    93 Distinguished name (DN) = The fixed primary key of any directory entry
    94 Root distinguished name (Root DN)
    95 Schema
    96 BER = Basic Encoding Rules (like ASN.1)
    97 Ldap.conf (Client part)
    98 Slapd.conf (Server part)
    99 SLAPd (OpenLDAP Server)
   101 Links
   102 -----
   103 This presentation
   104 Wikipedia
   105 IETF RFCs
   106 OpenLDAP
   108 ------------------------ Nokia Qt specific ------------------------
   110 Assumptions
   111 -----------
   112 Class called QLdap (QSql), QLdapconnection (QSqlDatabase), ...
   114 Problems
   115 --------
   116 In which Qt<Libname> module do the LDAP classes belong?
   117   1) In their own module.
   118   2) In libQtSQL.

mercurial