Tradisjonelt har man brukt en connectionstring med brukernavn og passord for å koble en Azure Web App til en Azure SQL database. Det fungerer jo helt fint, men passord kan komme på avveie, og har du egentlig kontroll over hvem som har tilgang til databasen?
Ved å bruke Managed Identity for tilkobling mot Azure SQL, slipper du å lagre brukernavn og passord i applikasjonen. I stedet autentiseres applikasjonen sikkert via Azure Entra ID. Dette gir bedre sikkerhet, enklere administrasjon og reduserer risikoen for eksponering av sensitive data.
Mitt eksempel-oppsett inkluderer en webapplikasjon som skal snakke med en database.
- Azure SQL Server: my-sql-server
- Azure Database: my-database
- Azure App Service: my-app-service
1. Opprett Managed Identity
Jeg starter med å opprette en ressurs av type User Assigned Managed Identity, og gir den navnet my-app-service-uami.
Kopier Client ID og Object ID tilhørende ressursen, for de trenger vi senere.

2. Koble Managed Identity til App Servicen
Under App Servicen finner jeg «Settings» og «Identity» i menyen til venstre, velger «User assigned» og velger ressursen jeg opprettet i forrige steg.

Hvis du bruker «deployment slot», koble den samme managed identity til slotten også.
3. Sett Microsoft Entra Admin
Vi trenger en admin-bruker med AD-innlogging for å utføre neste steg, så jeg søker opp databaseserveren min og finner «Settings» og «Microsoft Entra ID» i menyen til venstre og oppretter en admin-bruker.

4. Opprett databasebruker
Admin-brukeren med AD-innlogging bruker vi nå videre for å logge inn, gjerne med «Query editor» i Azure Portalen.
Opprett en bruker med tilstrekkelige rettigheter til ditt bruk. Navnet på brukeren bør matche Managed Identity-ressursen du opprettet i steg 1, og bruk også «Object ID» fra den ressursen.

Det er fornuftig å ikke gi databasebrukeren mer rettigheter enn nødvendig. Hvis det er tilstrekkelig med rollen db_datareader
, ikke gi den mer.
5. Bytt ut connectionstring, og inkluder Client ID fra ressursen du opprettet i første steg
Data Source=tcp:my-sql-server.database.windows.net,1433;Initial Catalog=my-database;Authentication=Active Directory Managed Identity;User Id=[Client ID of the user identity];Trusted_Connection=False;Encrypt=True;Connection Timeout=30;