Een .NET-toepassing migreren om wachtwoordloze verbindingen te gebruiken met Azure SQL Database
Van toepassing op: Azure SQL Database
Toepassingsaanvragen voor Azure SQL Database moeten worden geverifieerd. Hoewel er meerdere opties zijn voor verificatie bij Azure SQL Database, moet u waar mogelijk prioriteit geven aan verbindingen zonder wachtwoord in uw toepassingen. Traditionele verificatiemethoden die gebruikmaken van wachtwoorden of geheime sleutels maken beveiligingsrisico's en complicaties. Ga naar de verbindingen zonder wachtwoord voor Azure Services Hub voor meer informatie over de voordelen van het verplaatsen naar verbindingen zonder wachtwoord. In de volgende zelfstudie wordt uitgelegd hoe u een bestaande toepassing migreert om verbinding te maken met Azure SQL Database om verbindingen zonder wachtwoord te gebruiken in plaats van een gebruikersnaam en wachtwoordoplossing.
De Azure SQL Database configureren
Verbindingen zonder wachtwoord maken gebruik van Microsoft Entra-verificatie om verbinding te maken met Azure-services, waaronder Azure SQL Database. Microsoft Entra-verificatie: u kunt identiteiten op een centrale locatie beheren om het beheer van machtigingen te vereenvoudigen. Meer informatie over het configureren van Microsoft Entra-verificatie voor uw Azure SQL Database:
Zorg ervoor dat voor deze migratiehandleiding een Microsoft Entra-beheerder is toegewezen aan uw Azure SQL Database.
Navigeer naar de Microsoft Entra-pagina van uw logische server.
Selecteer Beheerder instellen om het flyoutmenu Microsoft Entra ID te openen.
Zoek in het flyoutmenu van Microsoft Entra ID naar de gebruiker die u als beheerder wilt toewijzen.
Selecteer de gebruiker en kies Selecteren.
Uw lokale ontwikkelomgeving configureren
Verbindingen zonder wachtwoord kunnen worden geconfigureerd voor zowel lokale als door Azure gehoste omgevingen. In deze sectie past u configuraties toe zodat afzonderlijke gebruikers zich kunnen verifiëren bij Azure SQL Database voor lokale ontwikkeling.
Aanmelden bij Azure
Zorg ervoor dat u bent aangemeld met hetzelfde Azure AD-account dat u wilt gebruiken voor toegang tot Azure SQL Database voor lokale ontwikkeling. U kunt zich verifiëren via populaire ontwikkelhulpprogramma's, zoals de Azure CLI of Azure PowerShell. De ontwikkelhulpprogramma's waarmee u zich kunt verifiëren, variëren per taal.
Meld u aan bij Azure via de Azure CLI met behulp van de volgende opdracht:
az login
Een databasegebruiker maken en rollen toewijzen
Maak een gebruiker in Azure SQL Database. De gebruiker moet overeenkomen met het Azure-account dat u hebt gebruikt om u lokaal aan te melden via ontwikkelhulpprogramma's zoals Visual Studio of IntelliJ.
Blader in Azure Portal naar uw SQL-database en selecteer Query-editor (preview).
Selecteer Doorgaan aan
<your-username>
de rechterkant van het scherm om u met uw account aan te melden bij de database.Voer in de weergave queryeditor de volgende T-SQL-opdrachten uit:
CREATE USER [user@domain] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user@domain]; ALTER ROLE db_datawriter ADD MEMBER [user@domain]; ALTER ROLE db_ddladmin ADD MEMBER [user@domain]; GO
Als u deze opdrachten uitvoert, wordt de rol Inzender voor SQL DB toegewezen aan het opgegeven account. Met deze rol kan de identiteit de gegevens en het schema van uw database lezen, schrijven en wijzigen. Zie Rollen met vaste databases voor meer informatie over de toegewezen rollen.
De configuratie van de lokale verbinding bijwerken
Bestaande toepassingscode die verbinding maakt met Azure SQL Database met behulp van de Microsoft.Data.SqlClient
bibliotheek of Entity Framework Core, blijft werken met verbindingen zonder wachtwoord. U moet de database echter bijwerken verbindingsreeks om de indeling zonder wachtwoord te kunnen gebruiken. De volgende code werkt bijvoorbeeld met zowel SQL-verificatie als verbindingen zonder wachtwoord:
string connectionString = app.Configuration.GetConnectionString("AZURE_SQL_CONNECTIONSTRING")!;
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand("SELECT * FROM Persons", conn);
using SqlDataReader reader = command.ExecuteReader();
De verbindingsreeks waarnaar wordt verwezen (AZURE_SQL_CONNECTIONSTRING
) bijwerken voor het gebruik van de indeling zonder wachtwoord verbindingsreeks:
Zoek uw verbindingsreeks. Voor lokale ontwikkeling met .NET-toepassingen wordt dit meestal opgeslagen op een van de volgende locaties:
- Het
appsettings.json
configuratiebestand voor uw project. - Het
launchsettings.json
configuratiebestand voor Visual Studio-projecten. - Lokale systeem- of containeromgevingsvariabelen.
- Het
Vervang de verbindingsreeks waarde door de volgende notatie zonder wachtwoord. Werk de
<database-server-name>
tijdelijke aanduidingen bij<database-name>
met uw eigen waarden:Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";
De app testen
Voer uw app lokaal uit en controleer of de verbindingen met Azure SQL Database werken zoals verwacht. Houd er rekening mee dat het enkele minuten kan duren voordat wijzigingen in Azure-gebruikers en -rollen zijn doorgevoerd via uw Azure-omgeving. Uw toepassing is nu geconfigureerd voor lokaal uitvoeren zonder dat ontwikkelaars geheimen in de toepassing zelf hoeven te beheren.
De Azure-hostingomgeving configureren
Zodra uw app is geconfigureerd voor lokaal gebruik van verbindingen zonder wachtwoord, kan dezelfde code worden geverifieerd bij Azure SQL Database nadat deze is geïmplementeerd in Azure. In de volgende secties wordt uitgelegd hoe u een geïmplementeerde toepassing configureert om verbinding te maken met Azure SQL Database met behulp van een beheerde identiteit. Beheerde identiteiten bieden een automatisch beheerde identiteit in Microsoft Entra ID (voorheen Azure Active Directory) die toepassingen kunnen gebruiken bij het maken van verbinding met resources die ondersteuning bieden voor Microsoft Entra-verificatie. Meer informatie over beheerde identiteiten:
De beheerde identiteit maken
Maak een door de gebruiker toegewezen beheerde identiteit met behulp van Azure Portal of de Azure CLI. Uw toepassing gebruikt de identiteit om te verifiëren bij andere services.
- Zoek boven aan Azure Portal naar beheerde identiteiten. Selecteer het resultaat beheerde identiteiten .
- Selecteer + Maken boven aan de overzichtspagina beheerde identiteiten .
- Voer op het tabblad Basisinformatie de volgende waarden in:
- Abonnement: Selecteer uw gewenste abonnement.
- Resourcegroep: Selecteer de gewenste resourcegroep.
- Regio: Selecteer een regio in de buurt van uw locatie.
- Naam: Voer een herkenbare naam in voor uw identiteit, zoals MigrationIdentity.
- Selecteer Controleren en maken onderaan de pagina.
- Wanneer de validatiecontroles zijn voltooid, selecteert u Maken. Azure maakt een nieuwe door de gebruiker toegewezen identiteit.
Nadat de resource is gemaakt, selecteert u Ga naar de resource om de details van de beheerde identiteit weer te geven.
De beheerde identiteit koppelen aan uw web-app
Configureer uw web-app voor het gebruik van de door de gebruiker toegewezen beheerde identiteit die u hebt gemaakt.
Voer de volgende stappen uit in Azure Portal om de door de gebruiker toegewezen beheerde identiteit te koppelen aan uw app. Dezelfde stappen zijn van toepassing op de volgende Azure-services:
- Azure Spring Apps
- Azure Container Apps
- Azure-VM's
- Azure Kubernetes Service
- Navigeer naar de overzichtspagina van uw web-app.
Selecteer Identiteit in het linkernavigatievenster.
Schakel op de pagina Identiteit over naar het tabblad Door de gebruiker toegewezen .
Selecteer + Toevoegen om de flyout Door de gebruiker toegewezen beheerde identiteit toevoegen te openen.
Selecteer het abonnement dat u eerder hebt gebruikt om de identiteit te maken.
Zoek op naam naar MigrationIdentity en selecteer deze in de zoekresultaten.
Selecteer Toevoegen om de identiteit aan uw app te koppelen.
Een databasegebruiker maken voor de identiteit en rollen toewijzen
Maak een SQL-databasegebruiker die wordt toegewezen aan de door de gebruiker toegewezen beheerde identiteit. Wijs de benodigde SQL-rollen toe aan de gebruiker zodat uw app de gegevens en het schema van uw database kan lezen, schrijven en wijzigen.
Blader in Azure Portal naar uw SQL-database en selecteer Query-editor (preview).
Selecteer Doorgaan aan
<username>
de rechterkant van het scherm om u met uw account aan te melden bij de database.Voer in de weergave queryeditor de volgende T-SQL-opdrachten uit:
CREATE USER [user-assigned-identity-name] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_datawriter ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_ddladmin ADD MEMBER [user-assigned-identity-name]; GO
Als u deze opdrachten uitvoert, wordt de rol Inzender voor SQL DB toegewezen aan de door de gebruiker toegewezen beheerde identiteit toegewezen. Met deze rol kan de identiteit de gegevens en het schema van uw database lezen, schrijven en wijzigen.
Belangrijk
Wees voorzichtig bij het toewijzen van databasegebruikersrollen in bedrijfsproductieomgevingen. In deze scenario's mag de app niet alle bewerkingen uitvoeren met één, verhoogde identiteit. Probeer het principe van minimale bevoegdheden te implementeren door meerdere identiteiten met specifieke machtigingen voor specifieke taken te configureren.
Meer informatie over het configureren van databaserollen en beveiliging vindt u in de volgende resources:
De verbindingsreeks bijwerken
Werk uw Azure-app-configuratie bij om de indeling zonder wachtwoord te gebruiken verbindingsreeks. Verbinding maken iontekenreeksen worden over het algemeen opgeslagen als omgevingsvariabelen in uw app-hostingomgeving. De volgende instructies richten zich op App Service, maar andere Azure-hostingservices bieden vergelijkbare configuraties.
Navigeer naar de configuratiepagina van uw App Service-exemplaar en zoek de Azure SQL Database-verbindingsreeks.
Selecteer het bewerkingspictogram en werk de verbindingsreeks waarde bij zodat deze overeenkomt met de volgende indeling. Wijzig de
<database-server-name>
en<database-name>
tijdelijke aanduidingen met de waarden van uw eigen service.Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";
Sla uw wijzigingen op en start de toepassing opnieuw op als dit niet automatisch gebeurt.
De toepassing testen
Test uw app om te controleren of alles nog steeds werkt. Het kan enkele minuten duren voordat alle wijzigingen zijn doorgevoerd via uw Azure-omgeving.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u een toepassing migreert naar verbindingen zonder wachtwoord.
U kunt de volgende bronnen lezen om de concepten die in dit artikel worden besproken, uitgebreider te verkennen: