In this article, you will see how to validate Azure AD token using Console Application.
Prerequisites
I have created an Azure App Service and I will log in to that application to get the access token which will be validated.
Go to Developer Tools -> Network and copy the access token.
How To Validate Azure AD Token Using Console Application
Navigate to Azure Portal (https://portal.azure.com) -> Azure Active Directory -> App Registrations -> Click on the App registered.
Copy the tenant and application ID.
How To Validate Azure AD Token Using Console Application
In the left navigation, click Certificates & Secrets. Create new client secret and copy the secret.

Console Application

Create a new console application using Visual Studio 2019. Install the following NuGet packages.
Copy and paste the following code. Update the below variables with your values (Copied from previous steps).
  1. using Microsoft.IdentityModel.Protocols;
  2. using Microsoft.IdentityModel.Protocols.OpenIdConnect;
  3. using Microsoft.IdentityModel.Tokens;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Configuration;
  7. using System.Globalization;
  8. using System.IdentityModel.Tokens.Jwt;
  9. using System.Linq;
  10. using System.Linq.Expressions;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace AzureADTokenValidation
  14. {
  15. class Program
  16. {
  17. static async Task Main(string[] args)
  18. {
  19. string token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IkN0VHVoTUptRDVNN0RMZHpEMnYyeDNRS1NSWSJ9.eyJhdWQiOiI3YjFjZTFhZC1hZjE1LTRlNWYtOWFlNC1hYWYwYTY4YTdhYjQiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vZThlNmQwMTgtYTgzNC00MDZiLTlmNDMtMmU5NGFlNDI1ODc2L3YyLjAiLCJpYXQiOjE1ODkyODQ2OTEsIm5iZiI6MTU4OTI4NDY5MSwiZXhwIjoxNTg5Mjg4NTkxLCJhaW8iOiJBVVFBdS84UEFBQUEyNWpRNzJBc3IyWHBYMEJlUkZRNU1lTTdSLy8zbnpIbUxDUHNYekJYRWZpSGlkQWM4Y0RPNHJoUUVEdk56OWtnRTdPK1pYbmxNTTVRNmk4RjZYY0hLZz09IiwibmFtZSI6IlZpamFpIEFuYW5kIFJhbWFsaW5nYW0iLCJub25jZSI6IjY1OWM5MjU0LTQyN2YtNDg5MC05ODQ5LTU0ZTk1Yjc0NDYyNCIsIm9pZCI6ImU2YmFkYTg2LTk4NDktNGFhNC1hZWQ0LTg5YzZlZmE5YTc0MSIsInByZWZlcnJlZF91c2VybmFtZSI6InZpamFpYW5hbmRAQzk4Ni5vbm1pY3Jvc29mdC5jb20iLCJzdWIiOiJIdjhtQ3RDVkx1NW8wYklrSDJVd2RCTnVUWTlqeC1RNUU4LTVuYU5pdkFJIiwidGlkIjoiZThlNmQwMTgtYTgzNC00MDZiLTlmNDMtMmU5NGFlNDI1ODc2IiwidXRpIjoiVml0alZEcVh5RS0yaWNLQUlRT19BQSIsInZlciI6IjIuMCJ9.UAT3FkgCBYqM7Mfux1V-yF1QTqg0Dlz4Y2G8VQqNqg3WXWdQWf8v4MHcrZVzycV6FSA0-C4ANRpkBxeX1mdmtic4l6e5onOsRS3r_PsWpp7mew_XlTt9TQ1W1pO5dn6lw6J4U3k41kmXVAPwH9hbZNEmVVM6KjNQLW-SdCfaJJIB0XVIqEK2HOlBPxSI8hugh9S5yRMYz6-xi7SrG-wQJtsa9s7Wz5O4FYW2YmjHdUIdj_xwJbfS6_rknJetO756okz4tHY70N3GAKlr_zvfXvuAMjXfsXQNQN5-TQnDcWVkvK6SrhCGQunlPmjvvTvJyp7KLZVrRhxnz8w98yaEfA";
  20. string myTenant = "e8e6d018-a834-406b-9f43-2e94ae425876";
  21. var myAudience = "7b1ce1ad-af15-4e5f-9ae4-aaf0a68a7ab4";
  22. var myIssuer = String.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}/v2.0", myTenant);
  23. var mySecret = "t.GDqjoBYBhB.tRC@lbq1GdslFjk8=57";
  24. var mySecurityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(mySecret));
  25. var stsDiscoveryEndpoint = String.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}/.well-known/openid-configuration", myTenant);
  26. var configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());
  27. var config = await configManager.GetConfigurationAsync();
  28. var tokenHandler = new JwtSecurityTokenHandler();
  29. var validationParameters = new TokenValidationParameters
  30. {
  31. ValidAudience = myAudience,
  32. ValidIssuer = myIssuer,
  33. IssuerSigningKeys = config.SigningKeys,
  34. ValidateLifetime = false,
  35. IssuerSigningKey = mySecurityKey
  36. };
  37. var validatedToken = (SecurityToken)new JwtSecurityToken();
  38. // Throws an Exception as the token is invalid (expired, invalid-formatted, etc.)
  39. tokenHandler.ValidateToken(token, validationParameters, out validatedToken);
  40. Console.WriteLine(validatedToken);
  41. Console.ReadLine();
  42. }
  43. }
  44. }

Build and Test the solution

Hit F5. Azure AD token is validated and the validated token is displayed as shown below.
How To Validate Azure AD Token Using Console Application

Summary

Thus, in this article, you saw how to validate Azure AD token using Console Application.