Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Functions biedt een beheerde identiteit, een kant-en-klare oplossing voor het beveiligen van de toegang tot Azure SQL Database en andere Azure-services. Beheerde identiteiten maken uw app veiliger door geheimen uit uw app te elimineren, zoals referenties in de verbindingsreeks s. In deze tutorial voeg je een beheerde identiteit toe aan een functie-app die Azure SQL-bindings gebruikt.
Deze tutorial gebruikt een door de gebruiker toegewezen beheerde identiteit (UAMI), die wordt aanbevolen omdat deze gedeeld kan worden tussen resources en onafhankelijk is van de levenscyclus van de app. Voor meer informatie over identiteitsgebaseerde verbindingen in Azure Functions, zie Verbindingen configureren met externe services.
Wanneer je deze tutorial hebt afgerond, maakt je functie-app verbinding met Azure SQL Database zonder dat je een gebruikersnaam en wachtwoord nodig hebt.
Een overzicht van de stappen die je neemt:
Databasetoegang verlenen aan Microsoft Entra-gebruiker
Schakel eerst Microsoft Entra-authenticatie in voor de SQL-database in door een Microsoft Entra-gebruiker toe te wijzen als Active Directory-beheerder van de server. Deze gebruiker wijkt af van de Microsoft-account die u hebt gebruikt om u aan te melden voor uw Azure-abonnement. Het moet een gebruiker zijn die u hebt gemaakt, geïmporteerd, gesynchroniseerd of uitgenodigd in Microsoft Entra-id. Zie Microsoft Entra-functies en -beperkingen in SQL-database voor meer informatie over toegestane Microsoft Entra-gebruikers.
Je kunt Microsoft Entra-authenticatie inschakelen via het Azure-portaal, PowerShell of Azure CLI. Instructies voor Azure CLI staan in de volgende sectie. Voor informatie over het voltooien van deze taak via het Azure-portaal en PowerShell, zie de Azure SQL-documentatie over Microsoft Entra-authenticatie.
Als uw Microsoft Entra-tenant nog geen gebruiker heeft, maakt u er een door de stappen te volgen bij Gebruikers toevoegen of verwijderen met behulp van Microsoft Entra-id.
Vind de object-ID van de Microsoft Entra-gebruiker door het
az ad user listcommando te gebruiken en user-principal-name< te vervangen>. Sla het resultaat op als variabele.Voor Azure CLI 2.37.0 en hoger:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].id --output tsv)Voor oudere versies van Azure CLI:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)Tip
Als u de lijst met alle gebruikersprincipaalnamen in Microsoft Entra ID wilt zien, voert u
az ad user list --query [].userPrincipalNameuit.Voeg deze Microsoft Entra-gebruiker toe als Active Directory-beheerder door het
az sql server ad-admin createcommando in Cloud Shell te gebruiken. Vervang <in de volgende opdracht de servernaam> door de servernaam (zonder het.database.windows.netachtervoegsel).az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
Voor meer informatie over het toevoegen van een Active Directory-beheerder, zie Provisione een Microsoft Entra-beheerder voor je server.
Maak een door de gebruiker toegewezen beheerde identiteit
Maak een door de gebruiker toegewezen beheerde identiteit aan en wijs deze toe aan je functie-app. Gebruik een door de gebruiker toegewezen identiteit omdat je deze kunt hergebruiken op meerdere resources en de levenscyclus onafhankelijk is van je functie-app.
Zoek in het Azure-portaal naar Managed Identities en selecteer Aanmaken.
Kies je Abonnement, Resourcegroep, Regio en geef de identiteit een Naam (bijvoorbeeld,
my-sql-identity).Selecteer Beoordelen en maken en selecteer vervolgens Maken.
Nadat de identiteit is aangemaakt, ga je naar je functie-app in het portaal.
Selecteer onder InstellingenIdentiteit en selecteer vervolgens het tabblad Gebruiker toegewezen .
Selecteer Toevoegen, selecteer de beheerde identiteit die je hebt aangemaakt en selecteer Toevoegen.
Tip
Je kunt ook een door het systeem toegewezen beheerde identiteit gebruiken. Als je de voorkeur geeft aan door het systeem toegewezen, schakel dit dan in op het tabblad Door het systeem toegewezen van de pagina Identiteit. Bij gebruik van system-assigned identity is de <identity-name> in de SQL-commando's de naam van je functie-app, en heb je de User Id parameter in de verbindingsreeks niet nodig.
SQL-database toegang verlenen tot de beheerde identiteit
In deze stap verbind je met de SQL-database via een Microsoft Entra-gebruikersaccount en verleen we de beheerde identiteit toegang tot de database.
Open je favoriete SQL-tool en log in met een Microsoft Entra-gebruikersaccount, zoals de Microsoft Entra-gebruiker die je als beheerder hebt aangewezen. Je kunt deze stap uitvoeren in Cloud Shell door het SQLCMD-commando te gebruiken.
sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30Voer in de SQL-prompt voor de gewenste database de volgende opdrachten uit om machtigingen aan uw functie te verlenen. Bijvoorbeeld:
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<identity-name>]; ALTER ROLE db_datawriter ADD MEMBER [<identity-name>]; GO<identity-name> is de naam van de beheerde identiteit in Microsoft Entra ID. Voor een door de gebruiker toegewezen identiteit is deze naam de naam die je aan de identiteit gaf bij het aanmaken ervan (bijvoorbeeld,
my-sql-identity). Voor een systeem-toegewezen identiteit is de naam altijd hetzelfde als de naam van je functie-app.Note
Als u de trigger Azure SQL gebruikt, zijn voor uw beheerde identiteit extra machtigingen vereist dan
db_datareaderendb_datawriter. Zie Grant-machtigingen voor Azure SQL trigger voor meer informatie.
Azure Function SQL-verbindingsreeks configureren
In de laatste stap configureert u de SQL-verbindingsreeks van de functieapp om Microsoft Entra beheerde identiteitsauthenticatie te gebruiken.
Je identificeert de naam van de verbindingsreeks-instelling in je functiecode als het bindingsattribuut ConnectionStringSetting, zoals te zien is in de SQL-invoerbindingattributen en -annotaties.
In de applicatie-instellingen van je functie-app werkt u de SQL-verbindingsreeks-instelling bij zodat deze het volgt volgt:
Server=<server-name>.database.windows.net; Authentication=Active Directory Default; Database=<database-name>; User Id=<client-id-of-user-assigned-identity>
Vervang <server-name> door je SQL-servernaam, <database-name> met je databasenaam en <client-id-of-user-assigned-identity> met de client-ID van je door de gebruiker toegewezen beheerde identiteit. Je kunt de client-ID vinden op de Overzichtspagina van je beheerde identiteitsresource in het Azure-portaal.
Tip
Het Active Directory Default authenticatiesleutelwoord werkt zowel lokaal (met je ontwikkelaarsgegevens) als in Azure (met de beheerde identiteit). Deze functie betekent dat je dezelfde verbindingsreeks in beide omgevingen kunt gebruiken. Voor systeem-toegewezen beheerde identiteit laat de User Id parameter weg.
Voor meer informatie over identiteitsgebaseerde verbindingen, zie Verbindingen configureren met externe diensten.