Delen via


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.

  1. Navigeer naar de Microsoft Entra-pagina van uw logische server.

  2. Selecteer Beheerder instellen om het flyoutmenu Microsoft Entra ID te openen.

  3. Zoek in het flyoutmenu van Microsoft Entra ID naar de gebruiker die u als beheerder wilt toewijzen.

  4. Selecteer de gebruiker en kies Selecteren.

    A screenshot showing how to enable Microsoft Entra admin.

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.

  1. Blader in Azure Portal naar uw SQL-database en selecteer Query-editor (preview).

  2. Selecteer Doorgaan aan <your-username> de rechterkant van het scherm om u met uw account aan te melden bij de database.

  3. 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
    

    A screenshot showing how to use the Azure Query editor.

    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:

  1. 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.
  2. 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.

  1. Zoek boven aan Azure Portal naar beheerde identiteiten. Selecteer het resultaat beheerde identiteiten .
  2. Selecteer + Maken boven aan de overzichtspagina beheerde identiteiten .
  3. 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.
  4. Selecteer Controleren en maken onderaan de pagina.
  5. 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.

A screenshot showing how to create a managed identity using the Azure portal.

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.
  1. Selecteer Identiteit in het linkernavigatievenster.

  2. Schakel op de pagina Identiteit over naar het tabblad Door de gebruiker toegewezen .

  3. Selecteer + Toevoegen om de flyout Door de gebruiker toegewezen beheerde identiteit toevoegen te openen.

  4. Selecteer het abonnement dat u eerder hebt gebruikt om de identiteit te maken.

  5. Zoek op naam naar MigrationIdentity en selecteer deze in de zoekresultaten.

  6. Selecteer Toevoegen om de identiteit aan uw app te koppelen.

    A screenshot showing how to assign a managed identity.

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.

  1. Blader in Azure Portal naar uw SQL-database en selecteer Query-editor (preview).

  2. Selecteer Doorgaan aan <username> de rechterkant van het scherm om u met uw account aan te melden bij de database.

  3. 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
    

    A screenshot showing how to use the Azure Query editor to create a SQL user for a managed identity.

    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.

  1. Navigeer naar de configuratiepagina van uw App Service-exemplaar en zoek de Azure SQL Database-verbindingsreeks.

  2. 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";
    
  3. 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: