Et av stegene innenfor både applikasjonsmodernisering og containerisering er å endre tjenesten til å bruke Microsoft Authentication Library (MSAL). Dette skiftet er avgjørende for applikasjoner som migreres fra tradisjonelle IIS-baserte tjenester til en mer moderne, containerisert arkitektur i Azure.
-
Oppsett av MSAL:
- Vi skal gå gjennom hvordan du setter opp MSAL (Microsoft Authentication Library) autentisering for en applikasjon som kjører i en container i Azure.
-
Bruk av GitHub Codespaces
- Opplev fordelen med å bruke Codespaces som utviklingsverktøy. Vi viser deg hvordan du enkelt kan sette opp og kjøre din applikasjon med en integrert IDE og kjøremiljø, helt uten behov for manuell oppsett av infrastruktur.
Hva er MSAL?
TL;DR: MSAL (Microsoft Authentication Library) er et bibliotek utviklet av Microsoft for å hjelpe applikasjoner med å autentisere brukere og få tilgang til Microsofts skytjenester og API-er som Microsoft 365, Azure, og mer, ved bruk av standardiserte protokoller som OAuth 2.0 og OpenID Connect. Det forenkler sikkerhetstokenhåndtering og støtter flere programmeringsspråk og plattformer.
MSAL brukes til å autentisere brukere i webklienten, slik at den kan kommunisere med backendtjenesten. Backendtjenesten sjekker deretter at brukeren er autentisert og har riktige roller og tilganger. Videre kan backendtjenesten kalle på andre tjenester med den innloggede brukeren.
-
Gå til https://portal.azure.com/ og logg inn med Sopra Steria brukeren din
-
Gå til https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps
-
Klikk på "New registration"
-
Finn på et fanzy app "Name", og klikk på "Register"
Tada! Du har laget en (din første?) App Registration
- Finn filen "appsettings.json"
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"ClientId": "api://clac-d-entra-containerpipelinetest",
"Audience": "api://clac-d-entra-containerpipelinetest",
"TenantId": "8b87af7d-8647-4dc7-8df4-5f69a2011bb5",
"ClientSecret": ""
}
}
-
Bytt verdiene til ClientId og Audience med navnet på din App Registration
-
Start tjenesten ved å trykke på F5
-
Gå til URL: http://localhost:5202/swagger/index.html
Dette starter tjenesten i kjøremiljøet til Codespaces og lager en Remote Tunnel som fungerer som en port forwarding mot din laptop sin localhost, slik at tjenesten blir tilgjengelig tilsynelatende på din lokale laptop på http://localhost:5202/swagger/index.html
Da dukker dette opp i VSCode som viser hvilke porter som forwardet til din laptop:
Nå ser du omtrent dette:
- Klikk på "Authorize" og logg inn med Sopra Steria brukeren
Access denied ! Vi må legge til riktig redirect i App Registration.
- Legg til "Application ID URI" med navnet på din App Registration som er prefix med "api://" Dette er for at App Registration skal være enklere å automatisere med IAC senere.
- Legg til Redirect URIs slik at applikasjonen vår kan autentisere ved bruk av OAuth provideren (Microsoft Entra ID), motta access token, verifisere dine credentials og redirecte tilbake til applikasjonen.
Legg inn følgende redirect URI: http://localhost:5202/swagger/oauth2-redirect.html
For utvidet forståelse, gå til: Microsoft Entra ID authentication flow
Får du fortsatt ikke autentisert??