Single Sign On (SSO)#
Bitte erstelle vor jeder Änderung an einer Schnittstelle/Import ein vollständiges Backup. Falls das Ergebnis nicht zufriedenstellend ist, kann dieses dann wiederhergestellt werden
Für die automatische Anmeldung an i-doit innerhalb eines Intranets bietet sich Single Sign-On (SSO) an. Dieser Artikel beschreibt die Einrichtung mit dem Apache-Modul auth_kerb.
Info
Dieser Artikel wurde zuletzt für i-doit Version 1.17.2 geprüft
Info
Diese Anleitung funktioniert nicht mehr mit Debian 11, da dort das Apache2-Modul mod_auth_kerb nicht mehr verfügbar ist. Verwende stattdessen GSSAPI.
Voraussetzungen#
- i-doit ist unter GNU/Linux installiert.
- Es wird ein Active Directory (AD) unter Windows Server 2008/2012 für die Authentifizierung eingesetzt.
Groß- und Kleinschreibung
Bei der Konfiguration ist exakt auf Groß- und Kleinschreibung zu achten.
Active Directory (AD) konfigurieren#
Erstelle für den SSO-Zugang einen Benutzer im AD. Beispiel:
- Servername von i-doit: idoit.mydomain.local
- AD Domain: addomain.local
- SSO-Benutzer: ssouser
- Passwort: passwort
Generiere auf einem AD Domain Controller mit dem Admin-Benutzer über das ktpass-Utility eine Keytab-Datei:
1 | |
Kopiere die generierte Datei krb5.keytab auf den i-doit-Server nach /etc/krb5.keytab.
Öffne anschließend Active Directory Users and Computers (adsiedit.msc). Aktiviere unter View die Option Advanced Features. Öffne das SSO-Userobjekt und prüfe im Reiter Attribute Editor die Werte userPrincipalName und servicePrincipalName -- in beiden muss genau ein Eintrag mit dem Wert HTTP/idoit.mydomain.local stehen.
Apache Webserver konfigurieren#
Für den Apache Webserver benötigst du das Modul auth_kerb.
Debian GNU/Linux oder Ubuntu Linux:
1 | |
Suse Linux Enterprise Server (SLES):
1 | |
Modul aktivieren:
1 | |
Erstelle die Kerberos-Konfiguration (ersetze dc.mydomain.local durch deinen Domain Controller):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Teste die Konfiguration mit folgendem Befehl:
1 | |
Du wirst nach dem Passwort des SSO-Benutzers gefragt. Prüfe mit klist, ob ein gueltiges Ticket existiert:
1 | |
Ergänze anschließend die Apache-Konfiguration für den VHost, unter dem i-doit erreichbar ist, innerhalb der Directory-Directive:
1 2 3 4 5 6 7 8 9 | |
Starte den Apache Webserver neu, damit die Änderungen wirksam werden:
1 | |
i-doit konfigurieren#
Die SSO-Einstellung findest du im Admin-Center unter System settings > Single Sign on. Aktiviere dort SSO.
Browser clientseitig konfigurieren#
Damit SSO automatisch genutzt wird, muss jeder Browser entsprechend konfiguriert werden.
Microsoft Internet Explorer (IE)#
Fuege den i-doit-Server in den IE-Einstellungen zu den lokalen Intranet Sites hinzu. Aktiviere unter Stufe anpassen > Benutzerauthentifizierung die Option Automatisches Anmelden mit aktuellem Benutzernamen und Kennwort. Stelle zudem sicher, dass unter Erweitert > Internetoptionen der Haken Integrierte Windows-Authentifizierung gesetzt ist.
Mozilla Firefox und Google Chrome#
SSO ist für diese Browser ebenfalls möglich. Details zur Konfiguration finden sich zu Hauf im Internet, für Firefox beispielsweise hier.
Troubleshooting#
Falls bei der Authentifizierung Probleme auftreten, prüfe folgende Punkte:
- Zeiteinstellungen auf Linux und Windows DC vergleichen: Sind diese gleich?
- Der Server ist in den meisten Fällen nur über den vollen FQDN idoit.mydomain.local erreichbar
- Hat der i-doit-Server Zugriff auf den Domain Controller? Liegt eine Firewall dazwischen?
- Ist der SSO Domain User entsperrt?
- Kann der DC per DNS vom i-doit-Server aus aufgelöst werden?
- Hat der Webserver Leseberechtigung auf die Datei krb5.keytab?