Copyright ©
Mindbreeze GmbH, A-4020 Linz, .
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller.
Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet.
Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.
JSON Web Tokens (JWTs) können zur sicheren Authentifizierung und Autorisierung für Webanwendungen und -dienste verwendet werden. Wenn sich ein Benutzer bei einer Anwendung anmeldet, wird ihm ein JWT ausgestellt, das Informationen über seine Identität und seine Berechtigungen enthält. Dieses Token kann über einen Authorization: Bearer Header an den Client Service gesendet werden. Der Client Service verwendet einen JSON Web Key (JWK), um das JWT zu verifizieren und die Identität zu extrahieren. Durch die Integration von Mindbreeze InSpire mit JWT-Authentifizierung können Benutzer sicher auf Inhalte und Dienste innerhalb der Plattform zugreifen.
Für die Konfiguration von JWT in Mindbreeze InSpire sind folgende Daten notwendig:
Sie finden die Konfiguration von JWT in der MMC Configuration im Tab „Client Service“ in der Sektion „JWT Authentication Settings“
Aktivieren Sie „Enable JWT Authentication“.
Im Textfeld „JWK JSON“ fügen Sie den Inhalt des in Abschnitt „Vorbereitung“ heruntergeladenen JSON ein.
Alternativ zur Option „JWK JSON“ können Sie die Option „JWK URI“ verwenden, um eine File-URI anzugeben, die auf eine JWK-Datei im Dateisystem der Appliance zeigt, z.B. file:///data/jwks-cognito.json oder /data/jwks-cognito.json. Erstellen Sie dazu im Management Center (MMC) in „File Manager“, „Local Filesystem“ die JSON-Datei (z.B. /data/jwks-cognito.json) und fügen Sie den Inhalt des in Abschnitt „Vorbereitung“ heruntergeladenen JSON ein.
Hinweis: Änderungen in der konfigurierten „JWK JSON“ Datei sind sofort wirksam; ein Neustart des Client Service ist also nicht notwendig.
Danach fügen Sie folgende „Required Claims Patterns“ hinzu:
Anschließend konfigurieren Sie die Einstellung „JWT Identity Claim Names“. Diese bestimmt, welcher Claim für die Identität in der Mindbreeze InSpire Suche herangezogen wird (z.B.: cognito:username ).
Wenn der Client Service in der Lage sein soll, Token von verschiedenen OAuth-Clients mit unterschiedlichen Claims zu verarbeiten, können mehrere Identity Claim Names konfiguriert werden. Dies ist notwendig, wenn Sie verschiedene Token haben, von denen einige z.B. den Claim "email" enthalten, der als Identität verwendet werden soll, und einige Token den Claim "upn" enthalten. Die Claims werden dann in der Reihenfolge geprüft, in der sie angegeben sind. Im genannten Beispiel würde das bedeuten, dass zuerst geprüft wird, ob das Token den Claim "email" enthält, falls nicht, wird der Claim "upn" geprüft.
Dies sollte mit äußerster Vorsicht konfiguriert werden, um eine falsche Zuordnung der Identität zu vermeiden.
Falls es noch zusätzliche Claims gibt, die in der Mindbreeze Suche als Principals verwendet werden sollen, konfigurieren Sie diese in „JWT Principal Claim Names“. Die Principal Claims können sowohl Einzelwerte sein als auch ein Array an Werten.
Wird im Request der Header „Authorization: Bearer {{token}}“ nicht mitgeschickt, wird versucht, den User mit einer anderen Authentifizierungsmethode anzumelden, falls eine konfiguriert ist. Z.B. kann SAML konfiguriert werden, welches als Fallback-Authentifizierungsmethode dienen soll.
Um dieses Verhalten zu deaktivieren, kann die Option „Optional JWT Authentication“ deaktiviert werden. Enthält der Request kein JWT, werden Requests strikt mit dem HTTP Status Code 403 beantwortet.
Jeder Zugriff auf eine authentifizierte Ressource (z.B. https://mysearch.com/api/v2/search) muss einen validen JWT Token enthalten. Ansonsten wird der Fehlercode HTTP 403 geliefert. Folgende Kriterien müssen erfüllt sein:
Falls eines dieser Kriterien nicht erfüllt ist, gibt es im Log mit Standardeinstellungen keine Meldung.
Es muss „Full Logging“ aktiviert werden (optional nur auf die Log Region com.mindbreeze.enterprisesearch.webapp.jwt). Damit werden detaillierte Meldungen geloggt, aus welchem Grund das JWT Token nicht gültig ist.
Hinweis: (Online-)Werkzeuge wie https://jwt.io/ eignen sich zur Analyse von JWT Tokens (Achtung Datenschutz).