JWT

Overview

Generate and validate JSON web tokens for use in integrating and authenticating with external systems, using a JWKS registry to get public keys for token signature validation

Key Features & Functionality

  • createtoken (Function) - create a signed JSON web token with standard claims.
  • createtokenwithcustomclaims (Function) - create a signed JSON web token with standard claims and additional custom claims that may be required for authentication with specific systems.
  • validatejwtsignature (Function) - Verify a received token against the issuing system's public key. Returns true if token was verified.
  • decodeJWT (Function) - Given a JWKS registry URL and a token, retrieve the proper public key and validate the given token returning an string with the decoded token if signature is valid, null otherwise.
Anonymous
Parents
  • Hello, 

    I'm trying to function "createtoken" of this plugin but I've an issue in creating the token.

    I have a private key like this

    -----BEGIN PRIVATE KEY-----

    <<MULTILINE DATA>>

    -----END PRIVATE KEY-----

    I have added the key in third party credentials but the I receive the error: "Appian JWTTools failed to read private key"

    I tried to remove newlines but the error is the same.

    Any suggestions?


    Thx

  • Hi Paolo, 

    The problem seems to be the format of the private key.
    The plugin expects the private key in PKCS#1RSAPrivateKey (PEM header: BEGIN RSA PRIVATE KEY) format and you are setting it in PKCS#8PrivateKeyInfo (PEM header: BEGIN PRIVATE KEY)
    Please double check but I think you might be able to convert from PKCS#8 to PKCS#1: openssl rsa -in private_pkcs8.pem -out private_pkcs1.pem

    Thanks,
    Leandro.

     

Comment
  • Hi Paolo, 

    The problem seems to be the format of the private key.
    The plugin expects the private key in PKCS#1RSAPrivateKey (PEM header: BEGIN RSA PRIVATE KEY) format and you are setting it in PKCS#8PrivateKeyInfo (PEM header: BEGIN PRIVATE KEY)
    Please double check but I think you might be able to convert from PKCS#8 to PKCS#1: openssl rsa -in private_pkcs8.pem -out private_pkcs1.pem

    Thanks,
    Leandro.

     

Children
No Data