Benutzerhandbuch ILIAS 8
Zertifikat-basiertes Single-Sign-On einrichten: Grundlagen
In ILIAS kann eine Apache-Authentifizierung für eine externe Authentifizierung eingesetzt werden. Es gibt derzeit zwei Möglichkeiten:
- Direkte Zuweisung
Hierbei kann ein Feld aus dem sogenannten "Server-Array" angegeben werden, das den Anmeldenamen nach erfolgreicher Authentifizierung enthält. Dieses Feld wird gelesen, wenn die Kriterien "Indicator field" und "Indicator value" zutreffen.
Ein zertifikat-basiertes Single-Sign-On ermöglicht es Benutzern, sich in ILIAS mit einem software-Token (Client-Zertifikat, das im Browser installiert ist) oder Hardware-Token (z. B. einer Smartcard) anzumelden. Als zusätzliche Funktion ist eine automatische Generierung von neuen Benutzerkonten möglich. Eine Besonderheit dieser Variante externer Authentifizierung ist, dass Benutzer per direktem Link einen Inhalt aufrufen können, ohne auf die Login-Seite umgeleitet zu werden.- Diese Methode verwendet X509v3-Client-Zertifikate. Eine externe PKI ist für die Verwaltung der Zertifikate erforderlich. Die Überprüfung des Zertifikats erfolgt während der Initialisierung eine SSL-Verbindung. Aus diesem Grund erfordert zertifikat-basiertes SSO eine ordnungsgemäße Konfiguration des Apache-Webservers mit mod_ssl und aktivierter Client-Authentifizierung.
Der Apache-Webserver wird so konfiguriert, dass er für ein bestimmtes Verzeichnis (<ILIAS>/sso) ein Client-Zertifikat verlangt. Wird ein gültiges Zertifikat gesendet, wird im Server-Array (s. Option 1 oben) das Feld "SSL_CLIENT_VERIFY" auf "SUCCESS" gesetzt. In einem anderen Feld setzt der Apache die Informationen aus dem Zertifikat ein. Zusammen mit der Einstellung "Assign usernames by custom function" kann nun aus diesen Werten ein Anmeldename ermittelt werden.
Hier wird deutlich, dass nicht ILIAS die eigentliche Authentifizierung durchführt. Diese wird durch den Apache-Webserver oder allgemeiner gesprochen extern durchgeführt.
- Diese Methode verwendet X509v3-Client-Zertifikate. Eine externe PKI ist für die Verwaltung der Zertifikate erforderlich. Die Überprüfung des Zertifikats erfolgt während der Initialisierung eine SSL-Verbindung. Aus diesem Grund erfordert zertifikat-basiertes SSO eine ordnungsgemäße Konfiguration des Apache-Webservers mit mod_ssl und aktivierter Client-Authentifizierung.
- Zuweisung durch eigene Funktion
Dies ist ähnlich zu Variante 1, bietet allerdings die Möglichkeit, den Anmeldenamen selbst zu ermitteln. Dazu findet man unter Services/AuthApache/classes/custom_username_func.php eine leere Funktion, die man entsprechend ausprogrammieren kann. Letztendlich muss diese Methode einen gültigen Anmeldenamen zurückliefern. Ggf. muss diese Funktion auch dafür sorgen, dass "Indicator field" und "Indicator value" entsprechend gesetzt werden, falls dies nicht automatisch geschieht.
Von einem externen System wird ein Link generiert, der den Anmeldenamen, einen Gültigkeitszeitstempel und eine Signatur enthält. Über die Signatur kann sichergestellt werden, dass der Link vom System erstellt und nicht verändert wurde (z.B. kann der Anmeldename nicht verändert werden, obwohl er im Klartext im Link steht; würde er verändert werden, würde das durch die Überprüfung der Signatur festgestellt und der Login-Vorgang abgebrochen).- Da hierbei die Authentifizierung nicht der Apache-Webserver durchführt, wird kein Feld im Server-Array gesetzt. Dies wird manuell in der "custom_username_func.php" vorgenommen. Deshalb kann der Server-Administrator die beiden Indikator-Felder (Name und Wert) auch frei wählen, muss aber darauf achten, dass diese durch den Programmierer gesetzt werden.
Im Folgenden gehen wir davon aus, dass Sie die Variante "Direkte Zuweisung" verwenden.