Migrace aplikace .NET pro použití bez hesel s Azure SQL Database

Platí pro:Azure SQL Database

Žádosti o aplikace do služby Azure SQL Database musí být ověřeny. I když existuje několik možností ověřování ve službě Azure SQL Database, měli byste v aplikacích určit prioritu bez hesel. Tradiční metody ověřování, které používají hesla nebo tajné klíče, vytvářejí bezpečnostní rizika a komplikace. Další informace o výhodách přechodu na připojení bez hesla najdete v centru služeb Azure. Následující kurz vysvětluje, jak migrovat existující aplikaci pro připojení ke službě Azure SQL Database, aby místo řešení uživatelského jména a hesla používala připojení bez hesla.

Konfigurace služby Azure SQL Database

Připojení bez hesla používají ověřování Microsoft Entra pro připojení ke službám Azure, včetně Azure SQL Database. Ověřování Microsoft Entra umožňuje spravovat identity v centrálním umístění za účelem zjednodušení správy oprávnění. Další informace o konfiguraci ověřování Microsoft Entra pro službu Azure SQL Database:

V tomto průvodci migrací se ujistěte, že máte přiřazeného správce Microsoft Entra ke službě Azure SQL Database.

  1. Přejděte na stránku Microsoft Entra vašeho logického serveru.

  2. Výběrem možnosti Nastavit správce otevřete rozevírací nabídku Microsoft Entra ID .

  3. V rozevírací nabídce Microsoft Entra ID vyhledejte uživatele, kterého chcete přiřadit jako správce.

  4. Vyberte uživatele a zvolte Vybrat.

    A screenshot showing how to enable Microsoft Entra admin.

Konfigurace místního vývojového prostředí

Připojení bez hesla je možné nakonfigurovat tak, aby fungovala pro místní i hostovaná prostředí Azure. V této části použijete konfigurace, které jednotlivým uživatelům umožní ověřovat se ve službě Azure SQL Database pro místní vývoj.

Přihlášení k Azure

V případě místního vývoje se ujistěte, že jste přihlášení pomocí stejného účtu Azure AD, který chcete použít pro přístup ke službě Azure SQL Database. Ověřování můžete provést prostřednictvím oblíbených vývojových nástrojů, jako je Azure CLI nebo Azure PowerShell. Vývojové nástroje, pomocí kterých se můžete ověřovat, se liší v různých jazycích.

Přihlaste se k Azure přes Azure CLI pomocí následujícího příkazu:

az login

Vytvoření uživatele databáze a přiřazení rolí

Vytvořte uživatele ve službě Azure SQL Database. Uživatel by měl odpovídat účtu Azure, který jste použili k místnímu přihlášení prostřednictvím vývojových nástrojů, jako je Visual Studio nebo IntelliJ.

  1. Na webu Azure Portal přejděte do databáze SQL a vyberte Editor dotazů (Preview).

  2. Výběrem možnosti Pokračovat <your-username> na pravé straně obrazovky se přihlaste k databázi pomocí svého účtu.

  3. V zobrazení editoru dotazů spusťte následující příkazy T-SQL:

    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.

    Spuštěním těchto příkazů přiřadíte zadanému účtu roli Přispěvatel databáze SQL. Tato role umožňuje identitě číst, zapisovat a upravovat data a schéma databáze. Další informace o přiřazených rolích naleznete v tématu Pevné databázové role.

Aktualizace konfigurace místního připojení

Stávající kód aplikace, který se připojuje ke službě Azure SQL Database pomocí Microsoft.Data.SqlClient knihovny nebo Entity Framework Core, bude i nadále fungovat s připojeními bez hesla. Je však nutné aktualizovat databázi připojovací řetězec tak, aby používala formát bez hesla. Následující kód například funguje s ověřováním SQL i bez hesla:

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();

Aktualizace odkazovaného připojovací řetězec (AZURE_SQL_CONNECTIONSTRING) tak, aby používala formát bez hesla připojovací řetězec:

  1. Vyhledejte svůj připojovací řetězec. Pro místní vývoj s aplikacemi .NET se obvykle ukládá v jednom z následujících umístění:

    • Konfigurační appsettings.json soubor pro váš projekt.
    • Konfigurační launchsettings.json soubor pro projekty sady Visual Studio.
    • Proměnné prostředí místního systému nebo kontejneru.
  2. Nahraďte hodnotu připojovací řetězec následujícím formátem bez hesla. <database-server-name> Aktualizujte zástupné <database-name> symboly vlastními hodnotami:

    Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>;
    Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";
    

Otestování aplikace

Spusťte aplikaci místně a ověřte, že připojení ke službě Azure SQL Database fungují podle očekávání. Mějte na paměti, že může trvat několik minut, než se změny uživatelů a rolí Azure rozšíří prostřednictvím vašeho prostředí Azure. Vaše aplikace je teď nakonfigurovaná tak, aby běžela místně, aniž by vývojáři museli spravovat tajné kódy v samotné aplikaci.

Konfigurace hostitelského prostředí Azure

Jakmile je vaše aplikace nakonfigurovaná tak, aby používala místně připojení bez hesla, může se stejný kód po nasazení do Azure ověřit ve službě Azure SQL Database. Následující části vysvětlují, jak nakonfigurovat nasazenou aplikaci pro připojení ke službě Azure SQL Database pomocí spravované identity. Spravované identity poskytují automaticky spravovanou identitu v Microsoft Entra ID (dříve Azure Active Directory) pro aplikace, které se používají při připojování k prostředkům, které podporují ověřování Microsoft Entra. Další informace o spravovaných identitách:

Vytvoření spravované identity

Vytvořte spravovanou identitu přiřazenou uživatelem pomocí webu Azure Portal nebo Azure CLI. Vaše aplikace používá identitu k ověření v jiných službách.

  1. V horní části webu Azure Portal vyhledejte spravované identity. Vyberte výsledek spravovaných identit.
  2. V horní části stránky přehledu spravovaných identit vyberte + Vytvořit.
  3. Na kartě Základy zadejte následující hodnoty:
    • Předplatné: Vyberte požadované předplatné.
    • Skupina prostředků: Vyberte požadovanou skupinu prostředků.
    • Oblast: Vyberte oblast blízko vaší polohy.
    • Název: Zadejte rozpoznatelný název vaší identity, například MigrationIdentity.
  4. Vyberte Zkontrolovat a vytvořit v dolní části stránky.
  5. Po dokončení ověření vyberte Vytvořit. Azure vytvoří novou identitu přiřazenou uživatelem.

Po vytvoření prostředku vyberte Přejít k prostředku a zobrazte podrobnosti o spravované identitě.

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

Přidružení spravované identity k webové aplikaci

Nakonfigurujte webovou aplikaci tak, aby používala spravovanou identitu přiřazenou uživatelem, kterou jste vytvořili.

Pomocí následujících kroků na webu Azure Portal přidružte spravovanou identitu přiřazenou uživatelem k vaší aplikaci. Stejný postup platí pro následující služby Azure:

  • Azure Spring Apps
  • Azure Container Apps
  • Virtuální počítače Azure
  • Azure Kubernetes Service
  • Přejděte na stránku přehledu vaší webové aplikace.
  1. V levém navigačním panelu vyberte Identitu .

  2. Na stránce Identita přepněte na kartu Přiřazené uživatelem.

  3. Výběrem + Přidat otevřete informační nabídku Přidat spravovanou identitu přiřazenou uživatelem.

  4. Vyberte předplatné, které jste použili dříve k vytvoření identity.

  5. Vyhledejte migrationIdentity podle názvu a vyberte ji z výsledků hledání.

  6. Vyberte Přidat a přidružte identitu k vaší aplikaci.

    A screenshot showing how to assign a managed identity.

Vytvoření uživatele databáze pro identitu a přiřazení rolí

Vytvořte uživatele databáze SQL, který se mapuje zpět na spravovanou identitu přiřazenou uživatelem. Přiřaďte uživateli potřebné role SQL, aby aplikace mohla číst, zapisovat a upravovat data a schéma databáze.

  1. Na webu Azure Portal přejděte do databáze SQL a vyberte Editor dotazů (Preview).

  2. Výběrem možnosti Pokračovat <username> na pravé straně obrazovky se přihlaste k databázi pomocí svého účtu.

  3. V zobrazení editoru dotazů spusťte následující příkazy T-SQL:

    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.

    Spuštění těchto příkazů přiřadí roli Přispěvatel databáze SQL spravované identitě přiřazené uživatelem. Tato role umožňuje identitě číst, zapisovat a upravovat data a schéma databáze.


Důležité

Při přiřazování rolí uživatelů databáze v podnikových produkčních prostředích buďte opatrní. V těchto scénářích by aplikace neměla provádět všechny operace pomocí jedné zvýšené identity. Pokuste se implementovat princip nejnižší úrovně oprávnění konfigurací více identit s konkrétními oprávněními pro konkrétní úlohy.

Další informace o konfiguraci databázových rolí a zabezpečení najdete v následujících zdrojích informací:

Aktualizace připojovacího řetězce

Aktualizujte konfiguraci aplikace Azure tak, aby používala formát bez hesla připojovací řetězec. Připojení řetězce jsou obecně uložené jako proměnné prostředí v hostitelském prostředí vaší aplikace. Následující pokyny se zaměřují na Službu App Service, ale jiné hostitelské služby Azure poskytují podobné konfigurace.

  1. Přejděte na konfigurační stránku instance služby App Service a vyhledejte připojovací řetězec azure SQL Database.

  2. Vyberte ikonu úprav a aktualizujte hodnotu připojovací řetězec tak, aby odpovídala následujícímu formátu. <database-server-name> Změňte hodnoty vlastní služby a <database-name> zástupné symboly.

    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. Uložte provedené změny a restartujte aplikaci, pokud se tak neprovádí automaticky.

Testování aplikace

Otestujte aplikaci, abyste měli jistotu, že všechno pořád funguje. Rozšíření všech změn v prostředí Azure může trvat několik minut.

Další kroky

V tomto kurzu jste zjistili, jak migrovat aplikaci na připojení bez hesla.

Podrobnější informace o konceptech probíraných v tomto článku najdete v následujících zdrojích informací: