'Unable to validate JWT signature [closed]

I'm trying to validate a JWT signature with no success.

Jwt header:

{
  "kid": "rp-sign",
  "alg": "PS512"
}

Exception: IDX10508: Signature validation failed. Signature is improperly formatted.

Inner exception: IDX10400: Unable to decode: 'dy7DIZFzL39V9ei8PlAj5BvNQW_GQ_xEAT0L79a9FdMfX7PMjo7rbT4FMexNBRsf-' as Base64url encoded string.

Here is my code:

private async Task GetPayloadFromSecurityToken(string securityToken, X509Certificate2 signatureCertificate)
{
    var publicKey = signatureCertificate.GetRSAPublicKey();
    byte[] publiKeyRaw = publicKey.ExportRSAPublicKey();

    RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
    provider.ImportRSAPublicKey(publiKeyRaw, out _);
    RsaSecurityKey rsaSecurityKey = new RsaSecurityKey(provider);

    var validationParameters = new TokenValidationParameters()
    {
        ValidateAudience = false,
        ValidateIssuer = false,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true,
        IssuerSigningKey = rsaSecurityKey
    };

    var jsonHandler = new Microsoft.IdentityModel.JsonWebTokens.JsonWebTokenHandler();
    var validationResult = jsonHandler.ValidateToken(securityToken, validationParameters);
    
    ...
}

I know that JWT is valid, but I do not know why is it not getting properly read.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source