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. | ||
Eigenschaften und Methoden | Beschreibung | JSON Element | |
CbAlgorithm:C | Algorithmus, der zum digitalen Signieren des JWT verwendet wurde. Wird immer im JWT ausgestellt.
| 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( | fügt eine Custom Wert zu den Header hinzu. | ||
CbClaims:O | Hält die Ansprüche, Nutzdaten. Ansprüche sind Aussagen über eine Entität (typischerweise den Benutzer) und zusätzliche Daten. | ||
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.: | 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.: | 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 | 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.: | 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( | fügt eine Custom Wert zu der Claims hinzu. | ||
CbGenerateJWTId( | Gibt eine eindeutige Kennung für das JWT zurück. | ||
CbGenerateJWT():C | Erzeugt einen neuen | ||
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 des | ||
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 |
Beispiel
| 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,