37 lines
1.5 KiB
C#
37 lines
1.5 KiB
C#
using Microsoft.Azure.Functions.Worker;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Microsoft.Identity.Web;
|
|
using Registration.Data;
|
|
using Registration.Mock;
|
|
|
|
var host = new HostBuilder()
|
|
.ConfigureFunctionsWebApplication()
|
|
.ConfigureServices((context, services) =>
|
|
{
|
|
services.AddApplicationInsightsTelemetryWorkerService();
|
|
services.ConfigureFunctionsApplicationInsights();
|
|
|
|
// =============================================================
|
|
// JWT Authentication — Entra External ID (CIAM)
|
|
// Validates Bearer tokens issued by usimclients.ciamlogin.com.
|
|
// AzureAd config is in local.settings.json (dev) or Function App
|
|
// Configuration (production) using AzureAd__ prefix.
|
|
// =============================================================
|
|
services.AddAuthentication()
|
|
.AddMicrosoftIdentityWebApi(context.Configuration.GetSection("AzureAd"));
|
|
|
|
services.AddAuthorization();
|
|
|
|
// =============================================================
|
|
// Data layer — SqlDataService backed by dbRegistration.
|
|
// Connection string: ConnectionStrings:Sql in local.settings.json
|
|
// or the "Sql" connection string in Function App Configuration.
|
|
// =============================================================
|
|
services.AddSingleton<SqlService>();
|
|
services.AddSingleton<IRegistrationDataService, SqlDataService>();
|
|
})
|
|
.Build();
|
|
|
|
host.Run();
|