using System.Collections;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using Microsoft.IdentityModel.Tokens;
using System.Security.Cryptography;
private const string jwkS = "{\"p\":\"8imhXlAvYnR-YfiOkiq8Z_aOIknCZHhkPDT7vtltKnlmCQ7y80M8A4hUEe4KGFJQU2I7LxcQ01DCBCVa150U-77_ucAF03vdS-T2eCgfE_AbWDmeMm0w5oVyVJ63jQgc3wWZvslqs8xGpfPkQrOsdANyHELIAfKTIVDkGOAXegk\",\"kty\":\"RSA\",\"q\":\"5G3_cI6jY0AcepfV8Blcc1Fc7YfstvR1nd2A-b5nPTBHcEgVfkezPnghjZn07-G7RipnWzqW3nt1AoaFQj4lM_9PMQQt2HRQPxXnXq9t3daH5VZv4921Omt_BIzk5PXacBJbbzuXhptVw4SbmkE93Xh5YBCQ2w0jCqAtyNqeO98\",\"d\":\"IABxF6HHTJ0KeXKiCW3KZN9tQ8JfqqTf-sheN8gvJZTth99PzfFHbQDYp1w2PEF9zWO6C3qf4lChmNdFPP8XEM24gqBzkr1CxS3oig4r4wDuKQqS9-W4aVF40KBvBwLVasqESsLEaxLG70bQ2E8TojHqHr-EgO4maX1ufrcSqGy5uH8paCc28NE-fVJ4WfMn-yU_1So05H6yOsYM63KDUTzqCyn1Bgq6hy227bs93rmEhemijfb_rFsRDmebsYMZ06Tk0CCE5PTVP6kKlk1rru9YS_QTn4byaV3LsmuPs0Gp7sF6p69tPfF-9mHyqFEXFk-7pMZvw16LvZcI7r3vYQ\",\"e\":\"AQAB\",\"use\":\"sig\",\"kid\":\"1\",\"qi\":\"GwOEuIXA18FGEbJpfUWcQzXZG7_PBaxQoEo1hlqbWIaJ6vdgpIijTwn4VZQFxgIYao5OwG7ujjSyZz44AXIhxkivVaas7-cO3oKxjl3mMq4qVrMRCkAZbsXoEqUjRgR_2LULc3AwaWcapVCE90AXZsIdEI09w90gSuTy1Z98YgI\",\"dp\":\"JmQ_NwqTWJKLbtDPGZE46WqHQhxbez4y9fCYcLtbuT4h1RHPpo1kOFMmsOkCJLT4EyAhreeEPVwyRiH98uzuZLL1K-erhMnAXcXg5U_HDYwlaalI0UnKVOGXLJ81DmDY4uqqYzrfdb3O_YRbDdAaaRIaxyw3NUfV15RRdTghwLE\",\"alg\":\"RS256\",\"dq\":\"IO5arPdjRqOvd1z8UqjVUyqfov69eYK0khWkylxQtdmH8v_xWUss5AydibRwQ0TforXqQJSpu1lA_SQ3gd1Dr8NWv1JC6bma9_1IZbYUuK582OslJkyIG-vzW8yUEw3-d7mtxNNqfNVX_9_WLt7I9Gyx0s-QkoPKUXXWI-ageTE\",\"n\":\"2BUhE6VziOXCPdptgy_XIrSR4zBAfQiq51_f7nHO4fyZvLZMapXZPE0qXUlQJBMLatxg1GSGwCHdHiTE-pNINpCtdDxMra2Jlf0XXiBVsstVI6BPZwpmarZB_nNN5f16sEqrymFbQTtKzVpCjGu3PMHQpa5SaJ9KUQVu1V2rRNSv9UjDq01XZ3zu_TCy6dPNyN-xgu2Q0HyN_dD0xMIsXT9qrWLdDIl2so2Fqy9_5OchDSPl1Mgt9MzFMZBKoLHcXSkAUNFsdw4A1qJlQIZnJ-_5BVR_kqe5B7ySnysxPE0B-51whDF28jT9zY7RrMxXD1PTYL96WYByoaXBmSFg1w\"}";
private const string pubKeyJwk = "{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"kid\":\"1\",\"alg\":\"RS256\",\"n\":\"2BUhE6VziOXCPdptgy_XIrSR4zBAfQiq51_f7nHO4fyZvLZMapXZPE0qXUlQJBMLatxg1GSGwCHdHiTE-pNINpCtdDxMra2Jlf0XXiBVsstVI6BPZwpmarZB_nNN5f16sEqrymFbQTtKzVpCjGu3PMHQpa5SaJ9KUQVu1V2rRNSv9UjDq01XZ3zu_TCy6dPNyN-xgu2Q0HyN_dD0xMIsXT9qrWLdDIl2so2Fqy9_5OchDSPl1Mgt9MzFMZBKoLHcXSkAUNFsdw4A1qJlQIZnJ-_5BVR_kqe5B7ySnysxPE0B-51whDF28jT9zY7RrMxXD1PTYL96WYByoaXBmSFg1w\"}";
public static void Main()
var jwk = new JsonWebKey(jwkS);
var tokenHandler = new JwtSecurityTokenHandler();
var token = tokenHandler.CreateEncodedJwt(new SecurityTokenDescriptor
Audience = "AccessApproval.Service",
Expires = DateTime.UtcNow + TimeSpan.FromHours(1),
Issuer = "AccessApproval.Component.Tests",
IssuedAt = DateTime.UtcNow,
Claims = new Dictionary<string, object> {{"sid", "test"}},
SigningCredentials = new SigningCredentials(jwk, jwk.Alg),
Console.WriteLine(token);
var jwk2 = new JsonWebKey(pubKeyJwk);
var validationParameters = new TokenValidationParameters
ValidateAudience = false,
var tokenHandler2 = new JwtSecurityTokenHandler();
tokenHandler2.ValidateToken(token, validationParameters, out var validatedToken);
Console.WriteLine((JwtSecurityToken)validatedToken);
Console.WriteLine("Hello World");