Unter Single Sign-On (SSO) versteht man, dass sich der Anwender an einer zentralen Komponente im Netzwerk anmelden kann. Nach erfolgreicher Authentisierung hat er auf alle Ressourcen im Netzwerk Zugriff, für die er die entsprechenden Berechtigungen besitzt.
Single Sign-On ist nicht mit einer zentralen Verwaltung der
Benutzeraccounts zu verwechseln. Bei einem solchen Setup werden
ausschliesslich die Accountdaten mit Hilfe eines zentralen Dienstes,
wie z.B. ein LDAP Verzeichnis verwaltet. Der Benutzer kann sich an
allen geeigneten Diensten im Netzwerk mit den gleichen
Authentisierungsdaten (z.B. Benutzername und Passwort)
anmelden. Allerdings muss er sich an jeder Anwendung gesondert
authentisieren.
Eine Single Sign-On Lösung geht jedoch noch einen Schritt weiter. Hier
muss sich der Benutzer bei Zugriff auf eine Anwendung nicht erneut
authentisieren. Die Authentisierung wird direkt vom System ohne
weiteren Handlungsbedarf des Benutzers durchgeführt.
Single Sign On wird in der Regel auf Betriebssystem-Ebene implementiert. Beispiele hierfür sind:
Single Sign-On bezeichnet also eine zentrale Verwaltung der Autorisierung von Zugriffen. Der Client schickt bei jedem Zugriff auf eine Netzwerkressource oder -Applikation ein Token mit, aus dem der jeweilige Dienst ermitteln kann, ob eine Zugriffsberechtigung für die jeweilige Ressource besteht.
Die detaillierte Ermittlung der Autorisierung der einzelnen Aktion wird von der Applikation selbst abgehandelt. Dieser Vorgang kann und sollte nicht unbedingt zentralisiert werden um Abhängigkeiten von der Implementierung der zentralen Sessionverwaltung zu vermeiden.
Im Intranet werden in der Regel Webapplikationen eingesetzt. Falls es die Lizenzbedingungen zulassen (wie es bei OpenSource Software im Sinne von "freier Software" die Regel ist) kann die Sessionverwaltung der jeweiligen Applikation entsprechend angepasst werden.
Alternativ zur Anpassung der einzelnen Applikationen kann auch mit Hilfe eines zentralen Dienstes gearbeitet werden. Dieser prüft vor jedem Zugriff auf eine Applikation ob der Anwender am Intranet angemeldet. Im Falle eines ungültigen Zugriffs wird der Zugriff blockiert und der Anwender zur Anmeldung aufgefordert.
Ein solches Dienst kann mit geringem Aufwand mit Hilfe eines
zentralen Webservers implementiert werden. Hierbei bietet sich der
Apache aufgrund seines modularen Aufbaus an.
Für die zentrale Authentisierungsverwaltung wird ein Modul benötigt,
welches bei jedem Zugriff das Token extrahiert und die Berechtigung
des Zugriffs ermittelt. Die Entwicklung eines solchen Moduls lässt
sich mit geringem Aufwand durchführen. Die Programmierung des Moduls
kann neben der Sprache C auch in Perl oder
Python erfolgen, wenn das entsprechende Interpreter-Modul in
den Apache konfiguriert wird.