Tuesday, 30 March 2021

WEB API Authentication using Azure AD

 using System;

using System.Collections.Generic;

using System.Configuration;

using System.IdentityModel.Tokens;

using System.Linq;

using Microsoft.Owin.Security;

using Microsoft.Owin.Security.ActiveDirectory;

using Owin;

using Microsoft.Owin.Security.Cookies;

using System.Globalization;

using Microsoft.Owin.Security.OpenIdConnect;


namespace Elite.Service

{

    public partial class Startup

    {

        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864

        public void ConfigureAuth(IAppBuilder app)

        {

            try

            {


                app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);


                app.UseCookieAuthentication(new CookieAuthenticationOptions

                {

                    ExpireTimeSpan = new TimeSpan(1, 0, 0)

                });


                app.UseOpenIdConnectAuthentication(

                      new OpenIdConnectAuthenticationOptions

                      {

                          ClientId = ConfigurationManager.AppSettings["ida:ClientID"],

                          Authority = String.Format(CultureInfo.InvariantCulture, ConfigurationManager.AppSettings["ida:AADInstance"], ConfigurationManager.AppSettings["ida:Tenant"]),

                      });



                app.UseWindowsAzureActiveDirectoryBearerAuthentication(

                    new WindowsAzureActiveDirectoryBearerAuthenticationOptions

                    {

                        //Audience = ConfigurationManager.AppSettings["ida:Audience"],

                        Tenant = ConfigurationManager.AppSettings["ida:Tenant"],

                        TokenValidationParameters = new TokenValidationParameters { SaveSigninToken = true, ValidAudience = ConfigurationManager.AppSettings["ida:Audience"] }

                    });


            }

            catch (Exception ex)

            {

                // DB Error Logging

                // App Insights Logging

            }

        }

    }

}


No comments:

Post a Comment