Mar 29

Verzeichnisdienste, die LDAP (Lightweight Directory Access Protocol) unterstützen, werden immer mehr für die Authentifizierung in Applikationen eingesetzt.
Wie einfach es ist, mit der Java basierten Scriptsprache Groovy einen LDAP Server abzufragen, zeigt das Apache Directory Projekt mit seiner Bibliothek groovy-ldap.
Nach dem Download und dem Auspacken der Zip Datei, brauch man nur noch das jar Archiv in den Klassenpfad aufnehmen und dann kann es auch schon losgehen. Hier ein kleines Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| package de.koo.groovy.ldap
import org.apache.directory.groovyldap.LDAP
import org.apache.directory.groovyldap.SearchScope
public class LdapSearch{
private LDAP conn;
public LdapSearch () {
conn = LDAP.newInstance('ldap://ldap.uno.edu:389')
assert (conn!=null)
println("connected")
}
public void searchAny() {
// alle Studenten
try {
conn.eachEntry (filter:'(sn=*)'
,base:'ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US') {student ->
println student.cn
}
} catch (Exception e) {}
}
public void searchWithName(name) {
def students=conn.search("(sn=${name})"
,'ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US'
,SearchScope.SUB)
students.each {student ->
println student.cn
}
}
public boolean isInLdap(dn) {
// Existiert ein Eintrag
return conn.exists(dn)
}
public void read(dn) {
// Auslesen eines einzelnen Eintrags
def student=conn.read(dn)
println "${student.sn} (mail: ${student.mail})"
}
static void main(args) {
LdapSearch ls=new LdapSearch()
ls.searchAny()
ls.searchWithName("Fu")
def dn='cn=Erin Lee Sheehan,ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US'
if (ls.isInLdap(dn)) ls.read(dn)
}
} |
Auf der Wiki Seite des Projekts und im Artikel von Groovy Zone befinden sich auch Beispiele zum Hinzufügen, Ändern und Löschen von LDAP Einträgen.
Eine Liste öffentlicher LDAP Server zum Testen gibt es auch.
Verzeichnisdienste, die LDAP (Lightweight Directory Access Protocol) unterstützen, werden immer mehr für die Authentifizierung in Applikationen eingesetzt.
Wie einfach es ist, mit der Java basierten Scriptsprache Groovy einen LDAP Server abzufragen, zeigt das Apache Directory Projekt mit seiner Bibliothek groovy-ldap.
Nach dem Download und dem Auspacken der Zip Datei, brauch man nur noch das jar Archiv in den Klassenpfad aufnehmen und dann kann es auch schon losgehen. Hier ein kleines Beispiel:
package de.koo.groovy.ldap
import org.apache.directory.groovyldap.LDAP
import org.apache.directory.groovyldap.SearchScope
public class LdapSearch{
private LDAP conn;
public LdapSearch () {
conn = LDAP.newInstance('ldap://ldap.uno.edu:389')
assert (conn!=null)
println("connected")
}
public void searchAny() {
// alle Studenten
try {
conn.eachEntry (filter:'(sn=*)'
,base:'ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US') {student ->
println student.cn
}
} catch (Exception e) {}
}
public void searchWithName(name) {
def students=conn.search("(sn=${name})"
,'ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US'
,SearchScope.SUB)
students.each {student ->
println student.cn
}
}
public boolean isInLdap(dn) {
// Existiert ein Eintrag
return conn.exists(dn)
}
public void read(dn) {
// Auslesen eines einzelnen Eintrags
def student=conn.read(dn)
println "${student.sn} (mail: ${student.mail})"
}
static void main(args) {
LdapSearch ls=new LdapSearch()
ls.searchAny()
ls.searchWithName("Fu")
def dn='cn=Erin Lee Sheehan,ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US'
if (ls.isInLdap(dn)) ls.read(dn)
}
}
Auf der Wiki Seite des Projekts und im Artikel von Groovy Zone befinden sich auch Beispiele zum Hinzufügen, Ändern und Löschen von LDAP Einträgen.
Eine Liste öffentlicher LDAP Server zum Testen gibt es auch.
geschrieben von gklinkmann
\\ tags: groovy, ldap, net, Open Source
Mar 02
Das Lightweight Directory Access Protocol (LDAP) hat sich im Internet für die Authentifizierung von Benutzerdaten bewährt. LDAP bietet dafür einen sehr performanten Zugriff auf Directory Server (auch LDAP Server genannt), in denen Benutzerdaten hierarchisch abgelegt sind.
Um sich ein bißchen mehr mit dem Thema beschäftigen, muss man nicht gleich einen eigenen LDAP Server aufsetzen, sondern kann auf eine Reihe öffentlicher und freier LDAP Server zurückgreifen.
Eine gute Liste dafür ist die von eMailman. Eine einfache Abfrage mittels ldapsearch (Bestandteil von MacOs, unter Ubuntu muss das Paket ldap-utils installiert sein) könnte so aussehen:
> ldapsearch -h "ldap.uno.edu" -LLL -x \
-b "ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US" \
"(sn=Fu)" cn
dn: cn=Pik Yu Fu,ou=Students,o=University of New Orleans,c=US
cn: Pik Yu Fu
dn: cn=Yuanyuan Fu : yfu2,ou=Students,o=University of New Orleans,c=US
cn: Yuanyuan Fu : yfu2
dn: cn=Shiquan Fu,ou=Students,o=University of New Orleans,c=US
cn: Shiquan Fu
Diese Abfrage sucht im LDAP Server der Universität von New Orleans nach Studenten mit dem Nachnamen Fu. Hier noch eine kurze Erläuterung der Parameter:
- -h
- LDAP Server
- -LLL
- Ausgabeoptionen – Ein einfaches -L beschränkt die Ausgabe auf LDIFv1. Ein zweites -L unterdrückt Kommentare. Ein drittes -L unterdrückt die Ausgabe der LDIF Version.
- -x
- Benutzen der einfachen Authentifizierung ohne den Simple Authentication and Security Layer (SASL).
- -b
- Benutzt eine andere Suchbasis als Startpunkt für die Suche.
- (sn=Fu)
- Filter für die Suche nach dem Nachnamen
- cn
- Common Name – Attribut, das ausgegeben wird
Das Lightweight Directory Access Protocol (LDAP) hat sich im Internet für die Authentifizierung von Benutzerdaten bewährt. LDAP bietet dafür einen sehr performanten Zugriff auf Directory Server (auch LDAP Server genannt), in denen Benutzerdaten hierarchisch abgelegt sind.
Um sich ein bißchen mehr mit dem Thema beschäftigen, muss man nicht gleich einen eigenen LDAP Server aufsetzen, sondern kann auf eine Reihe öffentlicher und freier LDAP Server zurückgreifen.
Eine gute Liste dafür ist die von eMailman. Eine einfache Abfrage mittels ldapsearch (Bestandteil von MacOs, unter Ubuntu muss das Paket ldap-utils installiert sein) könnte so aussehen:
> ldapsearch -h "ldap.uno.edu" -LLL -x \
-b "ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US" \
"(sn=Fu)" cn
dn: cn=Pik Yu Fu,ou=Students,o=University of New Orleans,c=US
cn: Pik Yu Fu
dn: cn=Yuanyuan Fu : yfu2,ou=Students,o=University of New Orleans,c=US
cn: Yuanyuan Fu : yfu2
dn: cn=Shiquan Fu,ou=Students,o=University of New Orleans,c=US
cn: Shiquan Fu
Diese Abfrage sucht im LDAP Server der Universität von New Orleans nach Studenten mit dem Nachnamen Fu. Hier noch eine kurze Erläuterung der Parameter:
-hLDAP Server
-LLLAusgabeoptionen - Ein einfaches -L beschränkt die Ausgabe auf LDIFv1. Ein zweites -L unterdrückt Kommentare. Ein drittes -L unterdrückt die Ausgabe der LDIF Version.
-xBenutzen der einfachen Authentifizierung ohne den Simple Authentication and Security Layer (SASL).
-bBenutzt eine andere Suchbasis als Startpunkt für die Suche.
(sn=Fu)Filter für die Suche nach dem Nachnamen
cnCommon Name - Attribut, das ausgegeben wird
geschrieben von gklinkmann
\\ tags: ldap, Open Source, Ubuntu