Skip to main content
Skip table of contents

TbeCbJWT

TbeCbJWT

Wird benutzt um ein JSONWebToken zu erzeugen oder auch zu validieren.

Eigenschaften und Methoden

Beschreibung

CbHeader:O

Enthält Metadaten über den Tokentyp und den Signaturalgorithmus.
Objekt der TbeCbJWTHeader Klasse, wird automatisch hergestellt.

Eigenschaften und Methoden

Beschreibung

JSON Element

CbAlgorithm:C

Algorithmus, der zum digitalen Signieren des JWT verwendet wurde. Wird immer im JWT ausgestellt.
Mögliche Werte:

  • "RS256" - RS256 Algorithmus, Default

  • "RS384" - RS384 Algorithmus

  • "RS512" - RS512 Algorithmus

alg

CbHeaderType:C

Typ des JWT. Default ist “JWT”. Wird immer im JWT ausgestellt.

typ

CbKeyId:C

Schlüssel, der zum digitalen Signieren des JWT verwendet wurde

kid

CbJSON:C

der JSON des Headers als String

CbSetHeaderParam(
aName:C, aValue:U)

fügt eine Custom Wert zu den Header hinzu.
Der Wert könnte auch einen JSON Objekt übergeben als String sein.

CbClaims:O

Hält die Ansprüche, Nutzdaten. Ansprüche sind Aussagen über eine Entität (typischerweise den Benutzer) und zusätzliche Daten.
Objekt der TbeCBJWTClaims Klasse, wird automatisch hergestellt.
Einige Ansprüche sind empfohlen, um Missbrauch von JWT-Token zu verhindern und einige grundlegende Informationen über den Kontext bereitzustellen, in dem das JWT ausgestellt wurde. Wie: Audience, Expiration, IssuedAt, Issuert, JWTId, NotBefore und Subject

Eigenschaften und Methoden

Beschreibung

JSON Element

CbAudience:C

Zeichenfolge oder ein Array von Komma gentrente Zeichenfolgen, das die Empfänger identifiziert, für die das JWT bestimmt ist. Dies kann eine bestimmte Anwendung, eine Reihe von Anwendungen oder die breite Öffentlichkeit sein. Z.B.: List der Rollen

aud

CbHasAudience:L

Empfänger sind gesetzt und sollten in den Token generiert werden

CbExpiration:N

Zeitstempel, der die Ablaufzeit des JWT angibt. Dies ist die Zeit, nach der das JWT nicht mehr zur Verarbeitung akzeptiert werden darf. Z.B.: 1715162400 oder SToD('07.05.2024')

exp

CbHasExporation:L

Ablaufzeit ist gesetzt und sollte in den Token generiert werden

CbIssuedAt:N

Zeitstempel, der den Zeitpunkt angibt, zu dem das JWT ausgestellt wurde. Dies ist der Zeitpunkt, zu dem das JWT erstellt wurde, und kann verwendet werden, um das Alter des JWT zu bestimmen. Z.B.: 1715162400 oder SToD('07.05.2024')

iat

CbHasIssuedAt:L

Erstellungszeitpunkt ist gesetzt und sollte in den Token generiert werden

CbIssuer:C

Auftraggeber, der das JWT ausgestellt hat. Dies kann ein menschlicher Benutzer, eine Organisation oder ein Dienst sein. Z.B: dontenwill.de

iss

CbHasIssuer:L

Austeller ist gesetzt und sollte in den Token generiert werden

CbJWTId:C

Eindeutige Kennung für das JWT. Z.B. Es könnte mit der Methode CbGenerateJWTId vorbereitet werden

jti

CbHasJWTId:L

Eindeutige Kennung ist gesetzt und sollte in den Token generiert werden

CbNotBefore:N

Zeitstempel, der die Zeit angibt, vor der das JWT nicht zur Verarbeitung akzeptiert werden darf. Dies ist die Zeit, vor der das JWT nicht verwendet werden darf. Z.B.: 1715162400 oder SToD('07.05.2024')

nbf

CbHasNotBefore:L

Zeitstempel ist gesetzt und sollte in den Token generiert werden

CbSubject:C

Auftraggeber, der das Subjekt des JWT ist. Dies kann ein menschlicher Benutzer, eine Organisation oder ein Dienst sein. Z.B: portal.dontenwill.de

sub

CbHasSubject:L

Subjekt ist gesetzt und sollte in den Token generiert werden

CbJSON:C

der JSON der Claims als String

CbSetClaim(
aName:C, aValue:U)

fügt eine Custom Wert zu der Claims hinzu.
Der Wert könnte auch einen JSON Objekt gespeichert als String sein.

CbGenerateJWTId(
aNumberOfBytes:N):C

Gibt eine eindeutige Kennung für das JWT zurück. aNumberOfBytes hat Default 16

CbGenerateJWT():C

Erzeugt einen neuen JSONWebToken und gibt diesen als Rückgabe zurück. Wenn während der Generierung ein Fehler aufgetreten ist, ist der Rückgabewert leer.

Parameter

Beschreibung

aSecret:C

Stellt die Integrität des Tokens sicher. Es wird durch die Kombination des codierten Headers, der codierten Nutzdaten und eines geheimen Schlüssels erstellt. (Private Key)

CbLoadJWT(aToken:C)

Liest der codierte Header und die codierte Anspruche, Nutzdaten. Nach dem Aufruf dieser Methode, könnten die Objekten CbHeaders un CbClaims gelesen werden.

CbLoadAndVerifyJWT():L

Liest den ganzen Token und fürt eine Validierung desJSONWebToken durch. Rückgabewert ist true wenn die Validierung erfolgreich war. Der Token wird immer geladen, unabhöngig von Ergebnis der Validierung.

Parameter

Beschreibung

aToken:C

Ein JavaWebToken das zu validiern ist.

aSecret:C

Stellt die Integrität des Tokens sicher. Es wird durch die Kombination des codierten Headers, der codierten Nutzdaten und eines geheimen Schlüssels erstellt. (Public Key)

CbGetLastError():C

Bei fehlerhaften CbCreateJWT() oder CbVerify(), kann diese Funktion aufgerufen werden um weitere Informationen zu erhalten.

Beispiel

PAS
| obeCbJWT:O, cToken:C, cTmpKey:C, lVerify:L |

function ReadMyFile(aFileName:C)
| oFileObject:O |

   cTmpKey     := '',
   oFileObject := FOpen(aFileName, FO_READ),
   FRead(oFileObject, cTmpKey, oFileObject.Size),
   FClose(oFileObject),
end,

obeCbJWT := CreateObject('TbeCbJWT', ),
startseq
   // ssh-keygen.exe -t rsa -b 4096 -m PEM -f jwtRS256.key
   ReadMyFile('jwtRS256.key'),
   obeCbJWT.CbClaims.CbSetClaim('myData', '{"key":1}'),
   cToken := obeCbJWT.CbGenerateJWT(cTmpKey),
   writeln('Token empfangen ' + cToken),

   // openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
   ReadMyFile('jwtRS256.key.pub'),
   lVerify := obeCbJWT.CbLoadAndVerifyJWT(cToken, cTmpKey),
   if lVerify then
      writeln('Validated. ' + cToken),
   else
      writeln('Validation failed! ' + obeCbJWT.CbGetLastError()),
   endif,
   writeln('Claims: ' + obeCbJWT.CbClaims.CbJSON ),
always,
   if not lVerify then
      writeln('Validation failed! ' + obeCbJWT.CbGetLastError()),
   endif,

   DestroyObject(obeCbJWT),
stopseq,
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.