private static string CreateJwt() { DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); DateTime now = DateTime.UtcNow; var claimset = new { iss = ISS, sub = CLIENT_ID, aud = "https://go.nexusgroup.com", iat = (int)now.Subtract(UnixEpoch).TotalSeconds, exp = (int)now.AddMinutes(55).Subtract(UnixEpoch).TotalSeconds }; // header var header = new { typ = "JWT", alg = JsonWebKeySignatureAlgorithm.RS256, kid = KEY }; // encoded header var headerSerialized = JsonConvert.SerializeObject(header); var headerBytes = Encoding.UTF8.GetBytes(headerSerialized); var headerEncoded = System.Convert.ToBase64String(headerBytes); // encoded claimset var claimsetSerialized = JsonConvert.SerializeObject(claimset); var claimsetBytes = Encoding.UTF8.GetBytes(claimsetSerialized); var claimsetEncoded = System.Convert.ToBase64String(claimsetBytes); // input var input = String.Join(".", headerEncoded, claimsetEncoded); var inputBytes = Encoding.UTF8.GetBytes(input); var signatureEncoded = KeyVaultUtil.Sign(inputBytes); // jwt return(String.Join(".", headerEncoded, claimsetEncoded, signatureEncoded)); }