Diese Funktion erzeugt einen JWT-Token (JSON Web Token) (gemäß RFC 7519).
Dabei wird der erzeugte Token entweder mit einem Zertifikat (Parameter c) oder einem HMAC (Parameter d) signiert.
JWT-Token bestehen aus zwei JSON-Teilen (Header und Payload). Beide werden der Funktion in einer Map (Parameter b) übergeben. Siehe Beispiel.
Die Funktion gibt als Ergebnis den signierten JWT-Token (mit den drei Bestandteilen Header, Payload und Signatur) zurück, kodiert in Base64.
Parameter
Parameter | Beschreibung |
|---|---|
a | Der zu verwendende JWT-Algorithmus (HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512). Hinweis: Verwenden Sie zur Auswahl eines Wertes die drei Punkte. |
b | Der Name der Map mit den JSON-Elementen (Header, Payload). Siehe Beispiel. |
c | ID des eigenen Zertifikats (bei JWT-Algorithmen RSx, ESx, PSx in Parameter a). |
d | Shared Secret Key (frei wählbar) für HMAC-Signatur (bei JWT-Algorithmen HSx in Parameter a). |
Beispiele
HMCA
Als erstes füllen wir die Map mymap mit folgenden Einträgen. Siehe Funktion add to map(). Beachten Sie bitte den speziellen Aufbau des Header-Schlüssels.
Schlüssel | Wert |
|---|---|
@JWTHEADER_kid | 313476155373880299762899997753309067120 |
sub | 1234567890 |
name | John Doe |
iat | 1516239022 |
Nun verwenden wir die Funktion mit folgenden Parametern.
Parameter | Wert |
|---|---|
a | HS256 |
b | mymap |
c | |
d | mysharedsecretkey |
Das erzeugt intern die folgende JWT-Struktur.
Header: {"kid":"313476155373880299762899997753309067120","alg":"HS256","typ":"JWT"} Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022} |
Die Gültigkeit des erzeugten JWT-Tokens (signiert und Base64-kodiert) können Sie nun prüfen mit der Funktion check JWT(). Verwenden Sie dazu den Shared Secret Key aus Parameter d.
RSA
Auf der Lobster Data Platform erstelltes Zertifikat:


Funktions-Parameter:
Parameter | Wert |
|---|---|
a | RS256 |
b | mymap |
c | 1765937881234222 |
d |
Hinweis zur Erstellung von EC-Zertifikaten
Wenn Sie die Lobster Data Platform zur Erstellung von Elliptic Curve (EC)-Zertifikaten verwenden, beachten Sie bitte, dass die spezifische Named Curve derzeit nicht in den Konfigurationseigenschaften ausgewählt werden kann. Die Plattform verwendet möglicherweise standardmäßig eine bestimmte Kurve (z. B. NIST P-256) basierend auf der angegebenen Schlüssellänge.
Da verschiedene Umgebungen – wie Blockchain-Anwendungen, IoT-Geräte oder bestimmte TLS-Konfigurationen – genaue Kurvenspezifikationen (z. B. secp256k1 vs. prime256v1) für die Interoperabilität erfordern, kann dieses Standardverhalten zu Kompatibilitätsproblemen führen. Um sicherzustellen, dass Ihr Zertifikat den genauen Anforderungen Ihres Zielsystems entspricht, empfehlen wir, Ihr EC-basiertes Zertifikat und Ihren Schlüssel mit einem externen Tool wie OpenSSL zu generieren, wo die Kurve explizit definiert werden kann, und es dann in die Lobster Data Platform zu importieren.