X4 Produktdokumentation

JSON WebToken Calculator

Dieser Adapter generiert, verifiziert und verarbeitet JSON-WebTokens.

Name des Adapters bis Version 5.5.4: JSON WebToken

Eigenschaften (Properties)

Operation

Vom Adapter ausgeführte Operation

Mögliche Werte:

  • CreateJWT: Generiert ein JSON-WebToken (JWT) aus einem XML-Dokument

  • Verify: Verifiziert den vom X4 Server generierten JWT

  • CreateXML: Erstellt aus einem vom X4 Server generierten JWT das dazugehörige XML-Dokument

Parameter

Folgende Parameter sind bei den oben genannten Operationen erforderlich:


CreateJWT

Verify

CreateXML

algorithm

erforderlich

erforderlich

erforderlich

useServerSecret


erforderlich, falls useSecretAsPublicKey nicht verwendet wird.


useSecretAsPublicKey


erforderlich, falls useServerSecret nicht verwendet wird.


secret


erforderlich, falls useSecretAsPublicKey verwendet wird.


keystoreUrl

erforderlich


erforderlich

keystoreType

erforderlich


erforderlich

keystorePassword

erforderlich


erforderlich

keyAlias

erforderlich


erforderlich

keyPassword

erforderlich


erforderlich

algorithm

Algorithmus, der für die Operation verwendet wird

Mögliche Werte:

  • HMAC256 

  • HMAC384

  • HMAC512

  • RSA256

  • RSA384

  • RSA512

  • ECDSA256

  • ECDSA384

  • ECDSA512

useServerSecret

Nur relevant für HMAC-Algorithmen. Legt fest, ob ein integriertes Server Secret oder eine benutzerdefiniertes Server Secret verwendet wird.

Mögliche Werte:

  • true: Integriertes Server Secret verwenden

  • false: Benutzerdefiniertes Server Secret verwenden

    Falls ein benutzerdefiniertes Server Secret verwendet wird, muss dieses mit dem Parameter secret angegeben werden.

useSecretAsPublicKey

Nur relevant für RSA- und ECDSA-Algorithmen. Legt fest, ob der Wert des Parameters secret als Public Key verwendet wird.

Mögliche Werte:

  • true: Wert des Parameters secret als Public Key verwenden

    Falls der Wert des Parameters secret  als Public Key verwendet wird, dann ist der Parameter secret erforderlich.

  • false: Wert des Parameters secret nicht als Public Key verwenden

secret

Nur relevant für HMAC-Algorithmen. Kennwort, dass verwendet wird, um ein Token zu verschlüsseln oder zu entschlüsseln.

Mögliche Werte: Base64-verschlüsseltes Kennwort

keystoreUrl

URL zum Keystore, der das RSA-/ECDSA-Schlüsselpaar enthält

Mögliche Werte: URL zu einem Keystore

Der Keystore muss durch die Java Security API unterstützt werden, z. B. JKS oder PKCS#12.

keystoreType

Typ des Keystores, der das RSA-/ECDSA-Schlüsselpaar enthält

Mögliche Werte: Typ des Keystores, z. B. jks oder pkcs12

keystorePassword

Passwort des Keystores, der das RSA-/ECDSA-Schlüsselpaar enthält

Mögliche Werte: Passwort

keyAlias

Alias des asymmetrischen Schlüssels, der für RSA-/ECDSA-Algorithmen verwendet wird

Mögliche Werte: Alias des verwendeten Schlüssels

keyPassword

Passwort des asymmetrischen Schlüssels, der für RSA-/ECDSA-Algorithmen verwendet wird

Mögliche Werte: Passwort des verwendeten Schlüssels

Statuswerte

1

Die Adapter-Operation wurde erfolgreich ausgeführt:

  • Operation CreateJWT: Im Output befindet sich ein JSON-WebToken

  • Operation Verify: Der JSON-WebToken ist gültig

  • Operation CreateXML: Im Output befindet sich das XML-Dokument zum JSON-WebToken

-1

Bei der Ausführung des Adapters kam es zu einem Fehler:

  • Operation CreateJWT und CreateXML: Im Output befindet sich eine Fehlermeldung

  • Operation Verify: Der JSON-WebToken ist ungültig.

400

Das Token ist abgelaufen.

Dieser Statuswert wird nur von den Operationen CreateXML und Verify ausgegeben.

Input

Je nach Operation erwartet der Adapter verschiedene Inputs:


    • Operation CreateJWT: es wird ein XML-Dokument erwartet, welches folgendes Format besitzt:

  • Die Header-Typen typ (Parameter: keystoretype) und alg (Parameter: algorithm) wird vom Adapter gesetzt.

  • Verwenden Sie keine Claims mit duplizierten Namen.

Das Element Header ist optional und kann bei Bedarf deklariert werden. Zum Beispiel erwartet Microsoft Azure eine Header-Deklaration.

Beispiel-Input
XML
<?xml version="1.0" encoding="UTF-8">
<TokenContent>
	<Headers>
		<Header name="x5t">hOBcHZi846VCHSJbFAs26Go9VTQ=</Header>
		<Header name="kid">vdgdINF455FBKWDSEF5gdrgddgg=</Header>
	</Headers>
    <Subject name="sub" type="String">1234567890</Subject>
	<ExpiresAt name="exp" type="Integer">1577750400</ExpiresAt>
	<NotBefore name="nbf" type="Integer">946684800</NotBefore>
	<Id name="jti" type="String">007</Id>
	<Claims>
		<Claim name="name" type="String">John Doe</Claim>
		<Claim name="admin" type="boolean">true</Claim>
	</Claims>
</TokenContent>

Zusätzliche Informationen zu den verwendenden Claims und deren XML-Objekten finden Sie unter iana.org. Bei nicht reservierten Claims können die Namen beliebig vergeben werden, jedoch dürfen sie nicht gleich sein mit bereits reservierten Claims wie beispielsweise bsp. oder exp.

Als type stehen die Werte String , Boolean , Integer , Long und Double zur Verfügung.

Für die Elemente ExpiresAt, NotBefore und IssuedAt werden Angaben im Unix-Zeitformat erwartet.


  • Operationen  Verify und CreateXML: Es wird ein JSON-WebToken erwartet, das aus einem Zwischenschritt stammen oder als Text-Datei (.txt) übergeben werden kann.

Output

Je nach Operation gibt der Adapter verschiedene Ergebnisse aus:

  • Operation CreateJWT: Im Output befindet sich ein JSON-WebToken

  • Operation Verify:  Wenn der JWT gültig ist, wird er wieder ausgegeben

  • Operation CreateXML: Im Output befindet sich das XML-Dokument zum JSON-WebToken