|
1 LDAP integration in Android |
|
2 Type: Lecture/presentation |
|
3 Category: Engineering/development |
|
4 Topic: Networking/Internals/Implementation choices |
|
5 Audience: Mobile users, |
|
6 software engineers, |
|
7 network engineers |
|
8 Duration: 45 minute presentation |
|
9 |
|
10 Author and Speaker |
|
11 ------------------ |
|
12 Michael Schloh von Bennewitz |
|
13 Software Engineer, Europalab Networks |
|
14 web: http://michael.schloh.com/ |
|
15 email: michael@schloh.com |
|
16 isdn: +49(89)44239885 |
|
17 voip: sips:michael@schloh.com |
|
18 xmpp: MSvB |
|
19 |
|
20 Biography |
|
21 --------- |
|
22 Michael Schloh von Bennewitz is a computer scientist specializing in |
|
23 network software, mobile computing, and client server design. He speaks |
|
24 at technical events every year. In the past, he has given lectures on |
|
25 object oriented design, technical writing, network protocols, mobile |
|
26 OSs, MeeGo development, LDAP integration strategies, and the Qt library |
|
27 build process. His speaking style is humorous, using gestures and good |
|
28 eye contact. He walks about the room and writes presentations in SVG |
|
29 or HTML5. |
|
30 |
|
31 Abstract |
|
32 -------- |
|
33 The lightweight directory access protocol (LDAP) is implemented in |
|
34 almost all IP hardphones as well as being prevelent in email clients. |
|
35 Although Active Directory users of Windows technology typically use LDAP |
|
36 for authentication, a number of directory relevant use cases lead to the |
|
37 question 'Why do so few mobile operating systems integrate LDAP client |
|
38 logic?' |
|
39 |
|
40 The presentation begins by defining and explaining the LDAP protocol. |
|
41 Reference is made to some well known client and server implementations |
|
42 as well as reviewing a hello world example application in ten minutes. |
|
43 A comparison is drawn to SQL, a similar technology which most have more |
|
44 experience with. Use cases are explored and judged for their value to |
|
45 the linux mobile ecosystem and Android OS in particular. |
|
46 |
|
47 In past presentations, audiences have put their own use cases |
|
48 forward and compared LDAP directory concepts with corresponding SQL |
|
49 alternatives. |
|
50 |
|
51 The audience consists of regular android users as well as software |
|
52 and network engineers familiar with LDAP, SQL, or neither one. |
|
53 Attendants expect clearly defined LDAP use cases, abstract concepts, |
|
54 concrete definitions, and a well explained hello world LDAP example |
|
55 implementation given live. |
|
56 |
|
57 It is likely that what attendants take home is not what they thought |
|
58 about before. Many have little or no exposure to directory services |
|
59 and will rejoice in learning about LDAP and how easy it is to integrate |
|
60 and administer. The Linux community stands to benefit greatly from a |
|
61 reenergized collective effort at integrating LDAP wherever a strong case |
|
62 for directory service exists. Hello Android, meet LDAP. |
|
63 |
|
64 The following text is a lecture outline. |
|
65 |
|
66 Main chapters (20 minutes) |
|
67 -------------------------- |
|
68 Concepts |
|
69 Directory |
|
70 Access |
|
71 Protocol |
|
72 LDAP |
|
73 Offspring |
|
74 Active directory |
|
75 Comparisons |
|
76 SQL |
|
77 Client storage |
|
78 |
|
79 Business use cases |
|
80 Legacy directories |
|
81 Network configuration |
|
82 Security or license sensitive |
|
83 |
|
84 General use cases |
|
85 Authentication |
|
86 Contacts integration |
|
87 Noncontacts customized |
|
88 Certificate storage |
|
89 SQL competition |
|
90 |
|
91 Platform provision |
|
92 Synchronization |
|
93 Read-optimized lookups |
|
94 Little network penalty |
|
95 Standardized protocol |
|
96 Network bound |
|
97 |
|
98 Platform architecture |
|
99 What Android API provides |
|
100 What Android market offers |
|
101 What 3rd party APIs offer |
|
102 Compatibility concerns |
|
103 |
|
104 Implementations |
|
105 Server-side relevance |
|
106 Client SDKs |
|
107 Apache [1] |
|
108 OpenDS [2] |
|
109 UnboundID [3] |
|
110 Novell [4] |
|
111 Mozilla [5] |
|
112 Netscape (renamed Mozilla) |
|
113 Oracle JNDI [6] (not available) |
|
114 JavaScript (not much) |
|
115 |
|
116 Demonstration (15 minutes) |
|
117 -------------------------- |
|
118 Download and installation of LDAP client SDK |
|
119 Development of Hello LDAP five line application |
|
120 Build, package, install, and test app |
|
121 Review of selected business use case |
|
122 |
|
123 Questions (10 minutes) |
|
124 ---------------------- |
|
125 Anticipated questions |
|
126 Why not just use a (Static|SQL|Lync|other) directory in business? |
|
127 What are the disadvantages of SQL or ODBC for similar applications? |
|
128 How relevant are directory services other than just for contacts? |
|
129 Why would a business not use whatever apps are already in the market? |
|
130 Why not depend on a social network for directory services? |
|
131 |
|
132 Relevant jokes about... |
|
133 ----------------------- |
|
134 Android and Linux |
|
135 Directories and legacy apps |
|
136 |
|
137 Glossary |
|
138 -------- |
|
139 Directory |
|
140 Access |
|
141 Protocol |
|
142 Lightweight Directory Access Protocol (LDAP) |
|
143 Active Directory (AD) |
|
144 Application Programming Interface (API) |
|
145 Software Development Kit (SDK) |
|
146 Structured Query Language (SQL) |
|
147 Open Database Connectivity (ODBC) |
|
148 American National Standards Institute (ANSI) |
|
149 International Organization for Standards (ISO) |
|
150 Internet Engineering Task Force (IETF) |
|
151 Request for Comments (RFC) |
|
152 |
|
153 Errata |
|
154 ------ |
|
155 Errata here. |
|
156 |
|
157 Lecture materials |
|
158 ----------------- |
|
159 This lecture is developed on a public source code revision management |
|
160 system [7]. It is (or will be) published on a public file server [8]. |
|
161 |
|
162 Technical requirements |
|
163 ---------------------- |
|
164 A WLAN connection (for remote slide advancement,) internet connectivity |
|
165 (for demonstration purposes,) and a whiteboard (to sketch diagrams) are |
|
166 needed for this presentation. |
|
167 |
|
168 Links and notes |
|
169 --------------- |
|
170 [1] http://directory.apache.org/ |
|
171 [2] http://www.opends.org/ |
|
172 [3] http://www.unboundid.com/products/ldap-sdk/ |
|
173 [4] http://www.novell.com/developer/ndk/ldap_classes_for_java.html |
|
174 [5] https://wiki.mozilla.org/Directory |
|
175 [6] http://www.oracle.com/technetwork/java/jndi/ |
|
176 [7] http://scm.europalab.com/lectures/ |
|
177 [8] ftp://ftp.europalab.com/pub/doc/lect/ |