Exemple #1
0
        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));
        }