Home > Allgemeines, Systemverwaltung > LDAP, Single-Sign-On … Was ist es, wie geht es ?

LDAP, Single-Sign-On … Was ist es, wie geht es ?

Heute mal zu einem ganz anderen Thema. Einem sehr komplexen Thema, das auch richtig ins Geld gehen kann ;-) . Ich möchte mit diesem Artikel versuchen durch Reduzierung auf die Grundkonzepte und in möglichst wenig technischer Sprache dieses Themenfeld etwas zu beleuchten. Ich hoffe es gelingt mir ;-)

Zuerst eine kurze Begriffsklärung:

LDAP = Lightweight Directory Access Protocol:

Alleine darüber könnte man (und hat man ;-) …) Bücher schreiben. Ich will es einfach machen : letztlich ist es eine Datenbank irgendwo, in der u.a. Anmeldedaten (Benutzername, Passwort) abgespeichert sind. Mehr brauchen wir eigentlich jetzt gar nicht darüber zu wissen.

Single-Sign-On :

Wie der Name eigentlich schon sagt : Ich habe zig Applikationen, bei denen ich mich mit meinen Login-Daten anmelden muss. Dieses zigmalige Anmelden wird durch eine Eingabe von Benutzername/Password ersetzt und danach bin ich “überall drin” ;-) .

Klingt einfach, ist es aber nicht, wie ich nachfolgend kurz erläutern möchte.

Ist LDAP ein Single-Sign-On, ist die häufigste Frage bzw das häufigste Missverständis :

Nein ist es nicht ! LDAP ist in der Regel die Basis einer Single-Sign-On-Lösung.Ich hoffe ich habe damit nicht zu viele Illusionen zerstört ;-) .

Schauen wir uns zuerst mal kurz LDAP an … Ist letztlich (u.a.) eine Datenbank mit Anmeldedaten, wie bereits gesagt. Was kann man damit tun ? Nun man kann den einzelnen Applikationen beibringen sich dagegen zu authentifizieren. In anderen Worten : Jede Applikation hat nach wie vor ihre Login-Maske, aber die Anmeldedaten liegen nur einmal in unserer LDAP-Datenbank vor. Schickt man diese Maske ab, wird im Hintergrund nicht in der applikationseigenen Ablage nachgesehen, sondern eben in dieser zentralen Datenbank.

Vorteil : Anmeldedaten müssen nicht für jede der Programme einzeln eingetragen, gepflegt und sychron gehalten werden. Das geschieht an zentraler Stelle. Ändere ich mein Passwort, gilt diese Änderung für alle angeschlossenen Systeme.

Nachteil : Abgesehen von Sicherheitsaspekten (habe ich einmal die Anmeldedaten, komme ich überall rein) muss jede angeschlossene Applikation fähig sein, sich gegen diese LDAP-Datenbank zu authentifizieren, sprich die Daten den Anmeldemaske mit dem Eintrag in der zentralen LDAP-Datenbank abzugleichen.

Gute Nachricht : Bestimmt 80% aller (Web-)Applikationen sind dafür schon ausgrüstet.

Aber wir haben damit noch kein Single-Sign-On ! Ich muss mich nach wie vor bei jedem System anmelden. Allerdings immer mit den gleichen Benutzername-Passwort-Paar. Auch nicht zu verachten …. Senkt den Verwaltungsaufwand enorm und strapaziert die Password-Synapsen der Benutzer deutlich webiger ;-) .

Single-Sign-On (kurz SSO)

Hier kommt noch eine Schippe Komplexibilität mehr drauf … Ich möchte mich einmal am Morgen anmelden und dann jede Applikation, jedes angeschlossene System ohne weiter Login-Maske nutzen können. Wie geht denn sowas, fragt sich der kritische Leser womöglich ;-) ?

Nun darauf gibt es eine Reihe von Antworten. Das Leben ist meist nicht so einfach ;-) . Ich versuche es hier aber mal zu vereinfachen und auf den Punkt zu bringen. Darüber gibts nämlich noch mehr Bücher als bei LDAP ;-) .

Wir stellen uns mal vor, wir haben nur eine Anmeldemaske. Schickt man die weg, meldet man sich bei einem zentralen SSO-Server an. Super ! Der SSO-Server hat mich über seine angeschlossenes LDAP-Datenbank authentifiziert und sagt mir das auch … irgendwie …

Nur müssen die Systeme, zu denen ich Zugang haben möchte, diese Information “ist angemeldet” auch bekommen. Sie müssen das “glauben”. Ich habe also jetzt 2 Aufgaben :

  • den Systemen beim Zugriff die Info mitgeben “bin angemeldet”
  • die Systeme so zu “verbiegen”, dass sie diese Information auch glauben ;-)

Diese Weitergabe erfolgt oft über die sog. Cookies, die manche als Ausgeburt des Teufels ansehen ;-) .

Das “glauben machen” kann dabei auf verschiedene Art erfolgen:

  • Im Hintergrund, versteckt bei einem solchen System anmelden
  • Einem solchen System “vorzugaukeln”, dass der Benutzer bereits angemeldet ist
  • Den Login-Prozess der Applikation so zu verändern, dass er zuerst die Information “bin angemeldet” liest

Hinter diesen 3 prinzipiellen Möglichkeiten verbirgt sich nun eine ganze Welt von hochkomplexer Technologie mit zig Servern, Zertifikaten, Kryptologie (Verschlüsselung) und re- bis re-re-redirects … Sicherheitsaspekte spielen hierbei eine herausragende Rolle. Abgesehen von den technischen Randbedingungen, denen auch die “bösen” Cookies unterliegen ;-) .

Ich bin mir sicher, die meisten meiner Leser wollen das gar nicht so genau wissen.

3 Beispiele kennen aber viele : Microsofts Passport, Windows Domainen Anmeldung (NTLM bzw Active Directory) und OpenID …

Abschliessend noch eine 3te Art von “quasi”-SSO :

Ein lokaler Passwort-Manager, der letztlich die Anmeldeformular vorausfüllt. Die Webbrowser bieten hier eine einfache Lösung bereits an, wen die entsprchende Option nicht ausgeschaltet ist : “Passwort merken”.

Das kann man aber noch bedeutend weiter treiben, mit einem LDAP-Server verbinden und landet dann bei PKI ( Public Key Infrastructure). Viele kennen das womöglich aus ihrem Unternehmen. Das ist der Zugang per Chipkarte …

Wer sich wider erwarten noch weiter in dieses Thema einarbeiten möchte, hier 2 gute Einstiegspunkte:

http://de.wikipedia.org/wiki/Single_Sign-On
http://entwickler.de/zonen/portale/psecom,id,101,online,910,p,0.html

Damit soll es aber erst mal genug sein. Ich hoffe, ich konnte etwas Verständnis für die Komplexibilität dieser sehr sicherheitsrelevanten Ecke der IT-Technologie wecken und einige Grundprinzipien verständlich machen.

admin Allgemeines, Systemverwaltung ,

  1. 12. Mai 2011, 09:21 | #1

    Sehr schöner Artikel, prima erklärt und vor allem ohne künstliche Verkomplizierung, die wir grad als Techniker ja immer so gerne machen :-)

    Danke!

    Gruß,
    Michael

  2. 12. Mai 2011, 09:26 | #2

    Hallo Michael,

    besten Dank für das Lob. Geht runter wie Öl :-) .

    War meine Absicht das Thema halbwegs verständlich zu erklären. Scheint mir ja gelungen zu sein :-) . Danke für das Feedback dazu. Bestärkt mich darin weiter zu machen :-) .

    Herzliche Grüße

    Toni

  1. 13. September 2009, 21:46 | #1
  2. 26. November 2009, 23:02 | #2