Single-Signon Drucken E-Mail
Geschrieben von: Administrator   
Mittwoch, 11. April 2007 13:45

Single Signon

Single-Signon bedeutet die Anmeldung an verschiedenen Systemen mit nur
einem Account. Im Falle von taunusstein.net ist das die E-Mail Adresse mit
dem dazugehörigen Passwort. Denkbar sind folgende Anwendungen:

  • WLAN
  • VPN
  • Webseiten
  • Shell Accounts

Die Liste kann beliebig fortgesetzt werden. Als Authentifizierungssysteme werden LDAP und Radius unterstützt.

Techniken

Es wird immer eine Schnittstelle benötigt, über die die Anmeldung erfolgen kann, denn irgendwie müssen ja Benutzername und das Passwort an den Server übermittelt werden, damit der weiss, ob der User da rein darf oder nicht.

AAA

Die Abkürzung AAA steht für Authentication, Authorization and Accounting. Dabei bedeuten

Authentication

Die Abfrage und der Vergleich von Usernamen und Passwort. Als Antwort sind hier ja oder nein möglich. Für eine solche Funktion können LDAP, Radius, eine SQL Datenbank oder auch X.509 Zertifikate benutzt werden.

Authorization

Hier wird festgelegt, was der User darf und was nicht. So soll ja nicht jeder User auf die administrativen Funktionen einer Anwendung zugreifen können. Diese Funktion ist gut mit LDAP, Radius oder einer SQL Datenbank darstellbar.

Accounting

Bei vielen Anwendungen ist es notwendig zu wissen, was der User gemacht hat. Typische Anwendungen sind z.B. Abrechnung von Traffic bei einem ISP, Verbindungdauer in einem Internet Cafe etc.

Diese drei Funktionen können mit Radius oder LDAP realisiert werden. Falls Accounting benötigt wird, ist Radius oft einfacher zu implementieren, als z.B. LDAP oder eine SQL Datenbank. Es spricht natürlich nichts gegen ein LDAP oder SQL Backend für Radius ;-) Es sollte auch bedacht werden, dass Radius und LDAP optimiert wurden, um eine große Anzahl typischer AAA Anfragen zu verarbeiten. SQL Datenbanken sind dagegen für andere Aufgaben optimiert.

taunusstein.net als AAA Plattform

Zu einem AAA System gehört noch mehr, als nur ein Radius / LDAP Server. Bei "öffentlichen" Anwendungen, wie z.B. WLAN oder public VPNs müssen sich die User auch irgendwo anmelden können, auf der anderen Seite müssen auch Karteileichen möglichst automatisch entsorgt werden. Ein solches System erreicht schon eine gewisse Komplexität. Wer z.B. einen öffentlichen WLAN Hotspot betreibt, will diesen Aufwand vielleicht nicht treiben und das ist auch nicht notwendig.

Es besteht die Möglichkeit, weitere AAA-Clients anzuschließen, damit erhält jeder E-Mail Benutzer die Möglichkeit, diesen AAA-Client zu nutzen. Wenn Sie ein solches Projekt vorhaben, kontaktieren Sie einfach Diese E-Mail-Adresse ist gegen Spambots geschützt! Sie müssen JavaScript aktivieren, damit Sie sie sehen können. und geben Sie die IP-Adresse Ihrens Clients und den Standort an. Sie erhalten dann das Secret und die Radius Config Daten.

Anwendungen

Wer einen Server, WLAN-Hotspot etc. betreibt und die Single-Signon Technik von taunusstein.net nutzen möchte, kann sich mit mir in Verbindung setzen. Die Kontaktdaten sind im Impressum zu finden.

Als Plattform wird ein LDAP Server verwendet. Für spezielle Anwendungen können auch spezielle Attribute verwendet werden. Bei taunusstein.net wird für die meisten Anwendungen das InetOrgPerson Schema verwendet, es eignet sich für fast alle Anwendungen, bei denen ein Username / Passwort zu überprüfen ist.

WLAN

Bei taunusstein.net gibt es zentrale Radius Server, die z.B. von einem PPTP Access Konzentrator benutzt werden können. Der PPTP Access Konzentrator kann z.B. aus einem Linux PC mit pptpd und ppp bestehen. So ist dann keine anonyme Nutzung des Accesspoints mehr möglich. Alleine diese Tatsache hält manchen Nutzer davon ab, Unfug zu treiben.

Anmeldung an Webangebot

Hier können entweder Radius oder LDAP benutzt werden. Der Apache 2.2.x vefügt zumindest über ein entsprechendes Modul für LDAP. Kann sich der Benutzer am LDAP anmelden, so hat er auch Schreibrechte auf sein Passwort. Über entsprechende LDAP Zugriffe kann der Benutzer also auch sein Passwort ändern.

Shellzugriff / FTP

Über PAM-LDAP ist auch der Zugriff auf die Unix Shell möglich. Ebenso kann auch ein FTP Server über diesen Mechanismus seine User authentifizieren.

Beispiel

Hier werden Bespiele veröffentlicht, um zu zeigen, wie Anwendungen mit Single-Signon genutzt werden können.

Apache

Seit Apache 2.2.0 ist LDAP fester Bestandteil der Anmeldeverfahren. In dem Beispiel wird gezeigt, wie ein bestimmter Pfad mit einem Passwort geschützt werden kann.

<Location "/apache-members">
Options -Indexes FollowSymlinks MultiViews
Order allow,deny
allow from all
AuthName "Apache Members only"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldaps://ldap.taunusstein.net/ou=apacheMembers,dc=taunusstein,dc=net?uid?sub"
require valid-user
</Location>

Damit die LDAP Abfragen schneller gehen, sollten im globalen Teil der Apache Konfiguration auch noch folgende Anweisungen stehen:

LDAPSharedCacheSize 200000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600

Damit werden die Ergebnisse der LDAP Abfragen zwischengespeichert, was die Performance enorm verbessert. Selbstverständlich können mit den üblichen require Anweisungen noch weitere Einschränkungen gemacht werden.

WLAN

Der taunusstein.net WLAN Hotspot nutzt die Single Signon Funktionen natürlich auch. Als PPTP Username / Passwort werden einfach die E-Mail Daten des Users genutzt.

 

Aktualisiert ( Dienstag, 03. Juli 2007 14:03 )