Kerberos-Authentifizierung

Die easydb unterstützt die Authentifizierung über sogenannte Kerberos Negotiation.

Vorteil:

  • Nutzer, die bereits in einer Windows Domäne angemeldet sind (z.B. weil sie sich an ihrem PC angemeldet haben),
    sind damit automatisch auch in easydb angemeldet.

Voraussetzung:

  • Jeder Browser muss initial um eine Einstellung ergänzt werden. (Siehe dazu den Abschnitt für Firefox und Internet Explorer)

Die easydb unterstützt ebenfalls die Password-Methode von Kerberos.

Vorteil:

  • Browser müssen nicht um eine Einstellung ergänzt werden.

Nachteil:

  • Nutzer werden per Browser-Pop-Up zur Passwort-Eingabe aufgefordert. Dies ist zwar etwas weniger komfortabel, aber es wird immerhin das zentrale Konto genutzt.

easydb-Konfiguration:

LOGIN_METHODS=shib2,easydb
SHIB2_ATTR_USER_ID=REMOTE_USER
SHIB2_ATTR_DISPLAYNAME=REMOTE_USER
  • Z.B. in /etc/opt/easydb/fotos.conf
  • fotos: Instanz-Name der easydb, wird von der Programmfabrik festgelegt.

Webserver-Konfiguration:

<Location /loginshib2/>
        AuthType Kerberos
        AuthName "Kerberos login"
        Krb5Keytab /etc/opt/easydb/secret/easydb.keytab
        KrbServiceName HTTP/fotos.example.org
        KrbAuthRealms KERBEROS.REALM
        KrbMethodNegotiate on
        KrbMethodK5Passwd off
        KrbSaveCredentials off
        Require valid-user
</Location>
  • Z.B. in /etc/apache2/sites-available/easydb
  • fotos.example.org: Name der easydb im DNS, den Browser als Teil der URL senden werden
  • KERBEROS.REALM: Typischerweise identisch mit Ihrer Active Directory Domain. Diese Zeile ist evtl. nicht notwendig.

Für die Password-Methode verkehren Sie die Werte der Variablen KrbMethodNegotiate und KrbMethodK5Passwd.

Damit die URL /loginshib2/ von der easydb genutzt wird muss die Login-Methode gewählt werden – und zwar vom Nutzer, im easydb Web-Frontend.
Diese Auswahl ist allerdings erst zu sehen, nachdem die Login-Maske angepasst wurde, üblicherweise durch die Programmfabrik, im creator.

Erzeugung der keytab-Datei

Auf dem zentralen Kerberos-Server, z.B. dem Windows Domain Controller:

ktpass -princ HTTP/fotos.example.org@long.name -mapuser foto@SHORT -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass 12345 -out c:\temp\easydb.keytab
  • fotos.example.org: Name der easydb im DNS, den Browser als Teil der URL senden werden
  • foto: Konto auf dem zentralen Server
  • 12345: Passwort des Kontos
  • long.name: Ihre Active Directory Domain
  • SHORT: Kurzform Ihrer Active Directory Domain
  • Platzieren Sie die Datei z.B. in /etc/opt/easydb/secret/easydb.keytab (passend zur Angabe in der Webserver Konfiguration, lesbar für den Webserver)
  • Weiterführende Informationen gibt es bei Bedarf u.a. unter: http://www.grolmsnet.de/kerbtut

Kerberos Konfiguration:

[libdefaults]
    default_realm = long.name
    dns_lookup_kdc = false
[realms]
    long.name = {
        kdc = zentral.example.org:88
        admin_server = zentral.example.org
    }
[domain_realm]
    .example.org = long.name
    example.org = long.name
  • ... in /etc/krb5.conf.
  • example.org: Ihre DNS domain
  • long.name: Ihre Active Directory Domain
  • zentral: Zentraler Kerberos Server

Browser-Konfiguration

Firefox:

  • Geben Sie about:config in das Adressfeld ein (nicht das Suchfeld) und bestätigen Sie.
  • Geben Sie in das darunter erscheinende "Suchen:"-Feld ein: negot
  • Doppelklicken Sie die Zeile mit "network.negotiate-auth.trusted-uris"
  • Geben Sie die DNS-domain Ihrer easydb ein (z.B. fotos.example.org)

Internet Explorer:

Schritt 1: DNS-Domain Ihrer easydb eingeben

1
2
3
4
5
6
7
  • 1 Optionen des IE über das Zahnrad-Menü aufrufen
  • 2 Internetoptionen
  • 3 Lokales Internet
  • 4 Sites
  • 5 Erweitert
  • 6 DNS-Domain Ihrer easydb eingeben
  • 7 Hinzufügen
8

Schritt 2: Windows-Authentifikation aktivieren

  • Optionen des IE über das Zahnrad-Menü aufrufen
  • Internetoptionen
  • Erweitert
  • 8 Integrierte Windows-Authentifikation aktivieren

Falls dieser Wert geändert werden musste, starten Sie den Internet Explorer neu.

Rechtevergabe

Die Rechtevergabe innerhalb der easydb erfolgt über den Nutzernamen und die Gruppenzuordnung.

Nutzerrechte können Sie im Rechtemanager der easydb ändern, allerdings unter Angabe des genauen Nutzernamens des Kerberos-Nutzers (z.B. mustermann@long.name).

  • long.name: Ihre Kerberos Realm bzw. Active Directory Domain

Wenn dies nicht ausreicht, können Sie Nutzern Gruppen zugeordnen.

Gruppen der easydb

Hierzu aktivieren Sie das zusätzliche easydb-Gruppenmapping mit:

LOGIN_ADDITIONAL_GROUP_METHODS=easydb

Legen Sie ebenfalls innerhalb der easydb-Nutzerverwaltung einen Nutzer mit dem gleichen Namen an (z.B. mustermann@long.name). Diesem können dann Gruppen zugeordnet werden.

  • long.name: Ihre Kerberos Realm bzw. Active Directory Domain

Gruppen aus LDAP (bzw. Active Directory)

easydb-Konfiguration:

LOGIN_ADDITIONAL_GROUP_METHODS=LDAP
LDAP_GROUPS_URL_1=ldap://ldap.example.org/ou=Groups,dc=SHORT,dc=de??sub?(&(memberUid=%(uid:ldap)s)(objectClass=groupOfNames))
  • Z.B. in der Datei /etc/opt/easydb/fotos.conf.
    • fotos im Dateinamen ist ein Platzhalter für den Instanz-Name der easydb. Dieser wird intern verwendet und immer von der Programmfabrik festgelegt.
  • ldap.example.org: DNS Eintrag Ihres LDAP-Servers, z.B. ein Domain Controller
  • ou=Groups, SHORT, dc=de: Teile Ihrer Active Directory Domain
  • groupOfNames: Objektklasse – kann bei Ihnen eine andere sein.
  • Abhängig von Ihrer Netzwerk-Infrastruktur lohnt sich evtl. ein Blick in die weiteren Einstellungs-Möglichkeiten des hier verwendeten LDAP-Moduls.

Da LDAP hier nicht für die Authentifizierung benutzt wird, sondern nur für Gruppen, ist derzeit nur LDAP_GROUPS_URL_1 verwendbar aber nicht LDAP_GROUPS_URL_2 (oder 3 etc.).

Weitere Einstellungen

Da für Kerberos das Shibboleth-Modul unverändert verwendet wird, sind auch dessen Einstellungen im Prinzip alle anwendbar.
Ausnahmen bilden die Gruppenzuordnungen des Shibboleth-Moduls. Stattdessen sind mit Kerberos nur Gruppenzuordnungen via LOGIN_ADDITIONAL_GROUP_METHODS möglich.

Weitere Einstellungen können auf der Seite des Shibboleth Moduls nachgelesen werden.