I am implementing Apple Sign-in in Mobile app. After successful sign-in, I get the ID token which is valid for one day.
Here is sample JWT token which I received after sign-in:
eyJraWQiOiJZdXlYb1kiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLmNsdWJiYWJsZSIsImV4cCI6MTYxODU4NTcyOCwiaWF0IjoxNjE4NDk5MzI4LCJzdWIiOiIwMDE4NTAuMzdkY2NmZGIxYzEyNDliY2E2NjE5YThkYjQ2MWFlNDkuMDQzMyIsImNfaGFzaCI6InVMTUV1eTRCaFozRVc1NXR1OXZtZGciLCJhdXRoX3RpbWUiOjE2MTg0OTkzMjgsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZX0.e86uz4Qqu63mD0hHVdzBU3EfW0G-rDUprBiXkyPkvPIHIWPM1LyjpFs2GeoWAcdfUdmGww6C8SLLgk4iMKjK_yrpxiQBmbIzdCLBrwW4P8Y40llcrotyRuwyalfycyUJ8GP9yqjs5_R7yZlDd4oq0wrDNyXVjlbdGSfNUGqmXScBgXm3yCH0rD85GK0hX3XM-fA133Y5tj1DRALZhnw2GLy-6YEPBlqFE-cvu9aif9ajuDx3gPwp9AQ_nXP3pWjSg2G5eYx7UMpowXbAVoDSlhQVu_KJgxPsW61i50QnhykmeNA7LxA2iLQnlGk5VKzNlATub49SybUnmPSViO_Fbw
Now I want to validate this token using JwtSecurityTokenHandler available under System.IdentityModel.Tokens.Jwt.
I wrote following code:
tokenHandler.ValidateToken(body.access_token, new TokenValidationParameters()
{
ValidateIssuer = true,
ValidIssuers = new List<string> { appleTokenIssuerName },
ValidateAudience = true,
ValidAudiences = new List<string> { appleAppClientId },
ValidateLifetime = false,
ValidateIssuerSigningKey = true,
IssuerSigningKey = // I want to pass signing key here but I'm not sure how can I do that.
}, out SecurityToken token);
Apple signing keys are available as Json web key set here - https://appleid.apple.com/auth/keys
Can you help me find correct way to supply this key to SecurityKey parameter?