JWT-Authentifizierung
JSON Web Token (JWT) ist ein offener Standard für die sichere Übertragung von Informationen zwischen zwei Parteien als JSON-Objekt (JavaScript Object Notation).
JWT überprüft, ob die Dienstanmeldedaten wahr sind, und lässt den Dienst im Namen eines beliebigen Benutzers unter Umgehung der Authentifizierung mit Benutzeranmeldedaten agieren. Da JWT single sign-on (SSO) aktiviert, wird die Anzahl der Male minimiert, die ein Benutzer sich bei Cloud-Anwendungen und Websites anmelden muss.
JWT-Struktur
Ein JWT besteht aus drei Teilen: einem Header, den Nutzdaten und einer Signatur.
Header
Der Header besteht üblicherweise aus zwei Teilen: Typ (typ) und Algorithmus (alg). Mit dem Algorithmus wird die Signatur generiert.
Beispiel:
{
"typ": "JWT",
"alg": "RS256"
}
RS256 gibt an, dass die RS256 - RSA-Signatur mit SHA256 zum Signieren dieses Tokens verwendet wird.
Nutzlast
Die Nutzdaten sind ein JSON-Objekt, das die Aussagen enthält, die Sie treffen möchten. Aussagen sind Informationen zu einem Element (üblicherweise den Benutzer) und zusätzliche Metadaten. Entweder muss das Attribut „email“ oder die Attributkombination „domain“/„name“ definiert sein.
Beispiel:
{
"email":"jde@company.com",
"exp": 1472034208
}
Beispiel:
{
"name":"jde",
"domain":"company",
"exp": 1472034208
}
Signatur
Mit der Signatur wird die Identität des JWT-Absenders überprüft und sichergestellt, dass die Nachricht nicht manipuliert wurde. Die Signatur ist der codierte Header und die Nutzlast, signiert mit einem geheimen Schlüssel. Im Normalfall werden X.509-Zertifikate zum Generieren und Validieren der Signatur verwendet.
Die Authentifizierung erfolgt durch die Überprüfung der Signatur. Wenn die Signatur gültig ist, wird der Zugriff gewährt.
Unterstützte Signaturalgorithmen
Die folgenden Signaturen werden in Qlik NPrinting unterstützt:
-
RS256 - RSA-Signatur mit SHA256
-
RS384 - RSA-Signatur mit SHA384
-
RS512 - RSA-Signatur mit SHA512
Beispiel: Zugriff auf Qlik NPrinting mit einem signierten JWT
Das folgende Beispiel zeigt die Schritte, die an dem Vorgang beteiligt sind, mit dem mithilfe eines signierten JWT Zugriff erlangt wird.
-
Ein JWT wird generiert, einschließlich einer Reihe von Ansprüchen, und mit dem privaten Schlüssel für das konfigurierte Zertifikat signiert.
-
An den Proxy wird eine Anforderung gesendet, die das signierte JWT im HTTP-Autorisierungsheader enthält.
-
Der Proxy fügt die konfigurierten Attributzuordnungen ein und leitet den Aufruf an den Backend-Dienst weiter.
-
Der Client erhält eine Sitzung, und nachfolgende Aufrufe müssen kein JWT enthalten.
- Falls die Aufrufe ein JWT enthalten, wird es validiert. Falls es ungültig ist, wird dem Benutzer der Zugriff verweigert.
-
Wenn sich der Benutzer im JWT von dem für die Sitzung gespeicherten Benutzer unterscheidet, erhält der Benutzer eine neue Sitzung.
Standardfelder
Die folgenden Felder in einem JWT-Anspruch werden von Qlik NPrinting verwendet:
- Ablaufzeit (exp): Gibt die Ablaufzeit an, nach der das JWT nicht mehr akzeptiert wird.
- Nicht vor (nbf): Gibt die Startzeit an, ab der das JWT akzeptiert wird.
Einschränkungen
Die folgenden Einschränkungen bestehen:
-
Verschlüsselte JWTs werden nicht unterstützt.
-
Nur die folgenden Signaturalgorithmen werden unterstützt:
-
RS256 - RSA-Signatur mit SHA256
-
RS384 - RSA-Signatur mit SHA384
-
RS512 - RSA-Signatur mit SHA512
-