Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: WebAPI configuration
- Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: Introduction
 - Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: Azure AD configuration
 - Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: Angular5 configuration
 - Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: WebAPI configuration
 - Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: Token lifetime management
 
Installing required packages
There is only one required package to achieve our Web Api protection with a JWT.
Install https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBearer/
PM> Install-Package Microsoft.AspNetCore.Authentication.JwtBearer -Version 2.0.1
Configure your Web API in Startup.cs:
using System;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace WebApiJwtBearer
{
   public class Startup
   {
      public Startup(IConfiguration configuration)
      {
         Configuration = configuration;
      }
      public IConfiguration Configuration { get; }
     //This method gets called by the runtime. Use this method to add services to the container.
     public void ConfigureServices(IServiceCollection services)
     {
        services.AddAuthentication(options =>
        {
           options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
           options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        }).AddJwtBearer(options =>
        {
           options.Authority = "https://login.microsoftonline.com/136544d9-038e-4646-afff-10accb370679"; <- tenantId
           options.Audience = "257b6c36-1168-4aac-be93-6f2cd81cec43"; <- clientId
           options.TokenValidationParameters.ValidateLifetime = true;
           options.TokenValidationParameters.ClockSkew = TimeSpan.Zero;
       });
       services.AddAuthorization();
       services.AddMvc();
    }
    //This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
       if (env.IsDevelopment())
       {
          app.UseDeveloperExceptionPage();
       }
      app.UseAuthentication();
      app.UseCors(builder => builder
      .AllowAnyOrigin()
      .AllowAnyMethod()
      .AllowCredentials()
      .AllowAnyHeader());
      app.UseMvc();
   }
 }
}
Now you should be done 🙂
Let’s see what happen if we test it :
Nice isn’t it? 🙂
