• fr
  • Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: WebAPI configuration

    This article is the continuation of the following article: Using OpenIdConnect with Azure AD, Angular5 and WebAPI Core: Angular5 configuration

    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? 🙂

    Let's get acquainted
    Want to learn more and/or collaborate with us?

    We can't wait to hear from you.