Goobi workflow
DokumentationenGoobi workflow PluginsGoobi workflow Digests
Deutsch
Deutsch
  • Übersicht
    • Goobi workflow Handbuch
    • Dokumentationsübersicht
    • Was ist Goobi?
  • Anwender
    • Goobi für Anwender
    • Allgemeines
      • Einloggen
      • Menü
      • Ausloggen
      • Sprachumschaltung
      • Hilfefunktion
      • Eigene Einstellungen
      • Passwort ändern
      • Meine Aufgaben
      • Vorgänge
      • Nach einem Vorgang suchen
      • Anlegen von Vorgängen
      • Aufgabendetails bearbeiten
    • Arbeiten mit Goobi für spezielle Benutzergruppen
      • Scannen
      • Qualitätskontrolle
      • Manuelle Skriptschritte und Pluginschritte
      • Automatische Skriptschritte
      • Metadatenbearbeitung
      • Export in das DMS
    • Metadateneditor
      • Oberfläche
        • Strukturbaum
        • Seitenanzeige
        • Menüoptionen
      • Metadaten bearbeiten
        • Paginierung
        • Strukturierung
          • Neue Strukturelemente hinzufügen
          • Strukturelemente verschieben
          • Kopieren von Strukturelementen aus anderen Vorgängen
      • Änderung und Prüfung von Daten
        • Paginierung nachträglich ändern
        • Datei hochladen
        • Datei herunterladen
        • Serverseitiges exportierten
        • Serverseitiges importieren
      • OCR Ergebnisse bearbeiten
      • Übersicht über die Tastenkombinationen
  • Verwaltung
    • Die Verwaltung von Goobi
    • Aufbau der erweiterten Nutzeroberfläche
    • Regelsätze
    • LDAP-Gruppen
    • Benutzer
    • Benutzergruppen
    • Vorgänge
      • Vorgänge suchen
      • Aktionen
      • Aktionen für Trefferlisten
      • GoobiScript
    • Variablensystem
    • Harvester
  • Administration
    • Die Administration von Goobi
    • Dateisystem
      • Globale Verzeichnisstruktur
        • Unterverzeichnis ‚config’
        • Unterverzeichnis ‚import’
        • Unterverzeichnis ‚metadata’
        • Unterverzeichnis ‚plugins’
        • Unterverzeichnis ‚rulesets’
        • Unterverzeichnis ‚scripts’
        • Unterverzeichnis ‚xslt’
      • Verzeichnisstruktur der Applikation
      • Einbindung von externem Storage
      • Einbindung von S3 als Storage
    • Dienste
      • Datenbank MySQL
      • Servlet Container Apache Tomcat
      • Authentifizierung der Nutzer mittels LDAP
      • Dateisystemzugriff mittels Samba
    • Export in digitale Bibliotheken
      • Technische Daten
      • Mets Parameter
      • Mets Dateigruppen
      • Konfiguration des Exports in der Goobi Konfigurationsdatei
    • Zusammenarbeit mit dem intranda Task Manager
    • Automatische Workflowschritte
      • Beispielkombination für einen automatischen Skript Schritt
      • Migration technischer Metadaten in METS-Dateien
      • Automatisches Löschen von Images
    • Konfigurationsdateien
      • goobi_activemq.xml
      • goobi_config.properties
      • goobi_digitalCollections.xml
      • goobi_exportXml.xml
      • goobi_mail.xml
      • goobi_metadataDisplayRules.xml
      • goobi_normdata.xml
      • goobi_opac.xml
      • goobi_opacUmlaut.txt
      • goobi_processProperties.xml
      • goobi_projects.xml
      • goobi_rest.xml
      • goobi_webapi.xml
      • messages_xx.properties
      • config_contentServer.xml
    • Installationsanleitung
      • Installationsanleitung - Ubuntu 20.04
    • Updateanleitung
      • Vorbereitung eines Updates
      • Updateschritte
        • 2020
        • 2021
        • 2022
        • 2023
        • 2024
        • 2025
    • Möglichkeiten der Authentifizierung
      • Authentifizierung über die Datenbank
      • Authentifizierung über HTTP-Header
      • Authentifizierung über OpenID Connect
    • Anwendungsszenarien
      • Thumbnails erzeugen für beschleunigte Bildanzeige
      • Umgang mit 3D Objekten
      • Export von 3D-Objekten in den Goobi viewer
  • Entwickler
    • Aufsetzen einer Entwicklungsumgebung
      • Vorbereitende Arbeiten
      • Einrichtung von Eclipse
      • Zurücksetzen der Daten
      • Best Practice für die Entwicklung von Goobi und für die Arbeit mit Eclipse
    • Nutzung der REST-API
    • Snippets für die Entwicklung an Goobi workflow
      • HTML
      • JavaScript
Bereitgestellt von GitBook
Auf dieser Seite
  • Beispielkonfiguration für CAS mittels Apache2
  • Beispielkonfiguration für SAML mittels Apache2 und mod_auth_melon
Als PDF exportieren
  1. Administration
  2. Möglichkeiten der Authentifizierung

Authentifizierung über HTTP-Header

Die HTTP-Header Authentifizierung liest einen HTTP-Header in der Anfrage aus, und überprüft ob es einen Nutzer gibt, bei dem die SSO-ID mit dem Inhalt des Headers übereinstimmt. Sollte es den Nutzer geben, wird er eingeloggt. Da HTTP-Header sehr leicht gesetzt werden können, sollte diese Authentifizierung nur benutzt werden, wenn Goobi workflow nur über einen vorgelagerten Webserver (zum Beispiel Apache2 oder nginx) erreichbar ist, und dieser die eigentliche Authentifizierung übernimmt. Um diese Authentifizierung zu nutzen, müssen in der Konfigurationsdatei goobi_config.properties folgende Schalter gesetzt sein:

EnableHeaderLogin=true
SsoHeaderName=ssoid
showSSOLogoutPage=true

Dabei wird mittels EnableHeaderLogin die Funktionalität eingeschaltet, mit dem Parameter SsoHeaderName wird der Name des auszulesenden Headers festgelegt. showSSOLogoutPage sorgt dafür, dass beim Logout eine Zwischenseite angezeigt und der Nutzer nicht direkt wieder neu eingeloggt wird.

Außerdem muss noch der login endpoint in der API freigeschaltet werden. Dazu wird ein neuer Eintrag in der goobi_rest.xml angelegt:

goobi_rest.xml
<endpoint path="/login/header">
    <method name="get">
        <allow />
    </method>
</endpoint>

Beispielkonfiguration für CAS mittels Apache2

Eine Beispiel-Einrichtung mit einem Apache2 Webserver und CAS single sign on könnte folgendermaßen durchgeführt werden:

Zuerst müssen Apache2 und das CAS-Modul installiert werden.

apt install apache2 libapache2-mod-auth-cas libcurl4 libpcre3

Das CAS-Modul setzt voraus, dass einige Verzeichnisse existieren und der Apache2-Prozess auf diese Verzeichnisse Zugriff hat:

mkdir -p /var/cache/httpd/mod_auth_cas/ && chown daemon /var/cache/httpd/mod_auth_cas/

Abschließend muss noch die Konfiguration für den Webserver Apache2 angepasst werden, damit das Modul geladen und der richtige upstream-Header gesetzt wird:

# load the CAS module
LoadModule auth_cas_module /usr/lib/apache2/modules/mod_auth_cas.so

<IfModule unixd_module>
# configure CAS
CASCookiePath /var/cache/httpd/mod_auth_cas/
CASLoginURL https://your.cas.service.tld/cas/login
CASValidateURL https://your.cas.service.tld/cas/serviceValidate
</IfModule>

# ProxyPass to Goobi...
ProxyPass "/goobi/" "http://localhost:8080/goobi/"
ProxyPassReverse "/" "http://localhost:8080/goobi/"

# ...and protect the location with CAS
<Location /goobi/>
  Authtype CAS 
  # this is the name of the header you need to set in the Goobi configuration
  CASAuthNHeader ssoid
  require valid-user
</Location>

Beispielkonfiguration für SAML mittels Apache2 und mod_auth_melon

Diese Beispiel-Einrichtung nutzt mod_auth_melon, um eine Authentifizierung mittels SAML Diensten und dem Goobi workflow header login umzusetzen. Hierbei nutzen wir für unseren neu einzurichtenden service provider die entityID https://mygoobi.tld/mygoobisp/ und nehmen an, dass unser Server unter der Domain mygoobi.tld zu erreichen ist. Das abzusichernde Goobi ist dann unter der URL https://mygoobi.tld/goobi/ zu erreichen.

Als erstes sollten Apache2 und mod_auth_melon installiert werden:

apt install apache2 libapache2-mod-auth-mellon

Als nächstes sollten die Service Provider Metadaten mitsamt des privaten Schlüssel und des Zertifikats erzeugt werden. Dazu gibt es im mod auth mellon repository ein praktisches Script:

Dieses Script erwartet zwei Parameter, die entityID unseres service provider, sowie die URL unter der die SAML endpoints des Service Provider erreicht werden können:

./mellon_create_metadata.sh "https://mygoobi.tld/mygoobisp/" "https://mygoobi.tld/mellon"

Der Befehl erzeugt einen privaten Schlüssel, ein Zertifikat sowie die Metadaten für den service provider.

In der Apache2 Konfiguration muss nun das auth-Modul geladen werden, sowie zwei Locations angelegt werden:

LoadModule auth_mellon_module /usr/lib/apache2/modules/mod_auth_mellon.so


# ProxyPass to Goobi...
ProxyPass "/goobi/" "http://localhost:8080/goobi/"
ProxyPassReverse "/" "http://localhost:8080/goobi/"

<Location />
    MellonEnable "info"
    MellonEndpointPath "/mellon/"
    
    # This needs to be configured in the Goobi workflow configuration as 
    # SsoHeaderName=ssoid
    MellonSetEnvNoPrefix "ssoid" "mail"

    # needs to be obtained from the identity provider
    MellonIdPMetadataFile /etc/apache2/mellon/idp-metadata.xml
    
    # the next three files were created my the 
    # mellon_create_metadata.sh script mentioned above
    MellonSPMetadataFile /etc/apache2/mellon/sp-metadata.xml
    MellonSPPrivateKeyFile /etc/apache2/mellon/sp.key
    MellonSPCertFile /etc/apache2/mellon/sp.cert
</Location>

<Location /goobi/>
    Authtype "Mellon"
    Require valid-user
    MellonEnable "auth"
</Location>

Die erste Location ist die globale mellon Konfiguration, in der wir die Metadaten für den identity provider und den service provider konfigurieren. Die zweite Location ist die zu schützende Goobi-Anwendung. Hier konfigurieren wir den Authtype zu Mellon und verlangen nach einem validen Nutzer. Goobi workflow nutzt dann wie oben beschrieben den ssoid header, um Nutzer zu identifizieren.

VorherigeAuthentifizierung über die DatenbankNächsteAuthentifizierung über OpenID Connect

Zuletzt aktualisiert vor 5 Monaten

https://github.com/latchset/mod_auth_mellon/blob/master/mellon_create_metadata.sh