Migrowanie aplikacji .NET do używania połączeń bez hasła z usługą Azure SQL Database

Dotyczy:Azure SQL Database

Żądania aplikacji do usługi Azure SQL Database muszą być uwierzytelnione. Chociaż istnieje wiele opcji uwierzytelniania w usłudze Azure SQL Database, należy określić priorytety połączeń bez hasła w aplikacjach, jeśli to możliwe. Tradycyjne metody uwierzytelniania korzystające z haseł lub kluczy tajnych tworzą zagrożenia bezpieczeństwa i komplikacje. Odwiedź centrum usług platformy Azure bez hasła, aby dowiedzieć się więcej o zaletach przechodzenia do połączeń bez hasła. W poniższym samouczku wyjaśniono, jak przeprowadzić migrację istniejącej aplikacji w celu nawiązania połączenia z usługą Azure SQL Database w celu używania połączeń bez hasła zamiast nazwy użytkownika i rozwiązania haseł.

Konfigurowanie usługi Azure SQL Database

Połączenia bez hasła używają uwierzytelniania Entra firmy Microsoft do łączenia się z usługami platformy Azure, w tym z usługą Azure SQL Database. Uwierzytelnianie firmy Microsoft Entra umożliwia zarządzanie tożsamościami w centralnej lokalizacji w celu uproszczenia zarządzania uprawnieniami. Dowiedz się więcej o konfigurowaniu uwierzytelniania usługi Microsoft Entra dla usługi Azure SQL Database:

W tym przewodniku migracji upewnij się, że masz administratora firmy Microsoft Entra przypisanego do usługi Azure SQL Database.

  1. Przejdź do strony Microsoft Entra serwera logicznego.

  2. Wybierz pozycję Ustaw administratora , aby otworzyć menu wysuwane Identyfikator entra firmy Microsoft.

  3. W menu wysuwany Microsoft Entra ID wyszukaj użytkownika, który chcesz przypisać jako administrator.

  4. Wybierz użytkownika i wybierz pozycję Wybierz.

    A screenshot showing how to enable Microsoft Entra admin.

Konfigurowanie lokalnego środowiska deweloperskiego

Połączenia bez hasła można skonfigurować tak, aby działały zarówno w środowiskach lokalnych, jak i hostowanych na platformie Azure. W tej sekcji zastosujesz konfiguracje, aby umożliwić poszczególnym użytkownikom uwierzytelnianie w usłudze Azure SQL Database na potrzeby programowania lokalnego.

Logowanie do platformy Azure

W przypadku programowania lokalnego upewnij się, że zalogowaliśmy się przy użyciu tego samego konta usługi Azure AD, którego chcesz użyć do uzyskiwania dostępu do usługi Azure SQL Database. Możesz uwierzytelnić się za pomocą popularnych narzędzi programistycznych, takich jak interfejs wiersza polecenia platformy Azure lub program Azure PowerShell. Narzędzia programistyczne, za pomocą których można uwierzytelniać się w różnych językach.

Zaloguj się do platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure przy użyciu następującego polecenia:

az login

Tworzenie użytkownika bazy danych i przypisywanie ról

Tworzenie użytkownika w usłudze Azure SQL Database. Użytkownik powinien odpowiadać kontu platformy Azure użytego do logowania lokalnego za pośrednictwem narzędzi programistycznych, takich jak Visual Studio lub IntelliJ.

  1. W witrynie Azure Portal przejdź do bazy danych SQL i wybierz pozycję Edytor zapytań (wersja zapoznawcza).

  2. Wybierz pozycję Kontynuuj po <your-username> prawej stronie ekranu, aby zalogować się do bazy danych przy użyciu konta.

  3. W widoku edytora zapytań uruchom następujące polecenia języka 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.

    Uruchomienie tych poleceń powoduje przypisanie roli Współautor bazy danych SQL do określonego konta. Ta rola umożliwia tożsamości odczytywanie, zapisywanie i modyfikowanie danych i schematu bazy danych. Aby uzyskać więcej informacji na temat przypisanych ról, zobacz Stałe role bazy danych.

Aktualizowanie konfiguracji połączenia lokalnego

Istniejący kod aplikacji łączący się z usługą Azure SQL Database przy użyciu Microsoft.Data.SqlClient biblioteki lub entity Framework Core będzie nadal działać z połączeniami bez hasła. Należy jednak zaktualizować bazę danych parametry połączenia, aby używać formatu bez hasła. Na przykład następujący kod działa zarówno z uwierzytelnianiem SQL, jak i połączeniami bez hasła:

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

Aby zaktualizować przywołyną parametry połączenia (AZURE_SQL_CONNECTIONSTRING) w celu użycia formatu parametry połączenia bez hasła:

  1. Znajdź parametry połączenia. W przypadku programowania lokalnego przy użyciu aplikacji platformy .NET zwykle jest to przechowywane w jednej z następujących lokalizacji:

    • appsettings.json Plik konfiguracji projektu.
    • launchsettings.json Plik konfiguracji projektów programu Visual Studio.
    • Zmienne środowiskowe systemu lokalnego lub kontenera.
  2. Zastąp wartość parametry połączenia następującym formatem bez hasła. <database-server-name> Zaktualizuj symbole zastępcze i <database-name> własnymi wartościami:

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

Testowanie aplikacji

Uruchom aplikację lokalnie i sprawdź, czy połączenia z usługą Azure SQL Database działają zgodnie z oczekiwaniami. Należy pamiętać, że propagowanie zmian użytkowników i ról platformy Azure za pośrednictwem środowiska platformy Azure może potrwać kilka minut. Aplikacja jest teraz skonfigurowana do uruchamiania lokalnie bez konieczności zarządzania wpisami tajnymi w samej aplikacji.

Konfigurowanie środowiska hostingu platformy Azure

Po skonfigurowaniu aplikacji do lokalnego używania połączeń bez hasła ten sam kod może uwierzytelniać się w usłudze Azure SQL Database po jej wdrożeniu na platformie Azure. W poniższych sekcjach opisano sposób konfigurowania wdrożonej aplikacji w celu nawiązania połączenia z usługą Azure SQL Database przy użyciu tożsamości zarządzanej. Tożsamości zarządzane zapewniają automatyczną tożsamość zarządzaną w usłudze Microsoft Entra ID (dawniej Azure Active Directory) dla aplikacji używanych podczas nawiązywania połączenia z zasobami obsługującymi uwierzytelnianie firmy Microsoft Entra. Dowiedz się więcej o tożsamościach zarządzanych:

Tworzenie tożsamości zarządzanej

Utwórz tożsamość zarządzaną przypisaną przez użytkownika przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure. Aplikacja używa tożsamości do uwierzytelniania w innych usługach.

  1. W górnej części witryny Azure Portal wyszukaj pozycję Tożsamości zarządzane. Wybierz wynik tożsamości zarządzanych.
  2. Wybierz pozycję + Utwórz w górnej części strony przeglądu tożsamości zarządzanych .
  3. Na karcie Podstawy wprowadź następujące wartości:
    • Subskrypcja: wybierz żądaną subskrypcję.
    • Grupa zasobów: wybierz żądaną grupę zasobów.
    • Region: wybierz region w pobliżu lokalizacji.
    • Nazwa: wprowadź rozpoznawalną nazwę tożsamości, taką jak MigrationIdentity.
  4. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.
  5. Po zakończeniu sprawdzania poprawności wybierz pozycję Utwórz. Platforma Azure tworzy nową tożsamość przypisaną przez użytkownika.

Po utworzeniu zasobu wybierz pozycję Przejdź do zasobu , aby wyświetlić szczegóły tożsamości zarządzanej.

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

Kojarzenie tożsamości zarządzanej z aplikacją internetową

Skonfiguruj aplikację internetową tak, aby korzystała z utworzonej tożsamości zarządzanej przypisanej przez użytkownika.

Wykonaj następujące kroki w witrynie Azure Portal, aby skojarzyć tożsamość zarządzaną przypisaną przez użytkownika z aplikacją. Te same kroki dotyczą następujących usług platformy Azure:

  • Azure Spring Apps
  • Azure Container Apps
  • Maszyny wirtualne platformy Azure
  • Azure Kubernetes Service
  • Przejdź do strony przeglądu aplikacji internetowej.
  1. Wybierz pozycję Tożsamość w obszarze nawigacji po lewej stronie.

  2. Na stronie Tożsamość przejdź do karty Przypisane przez użytkownika.

  3. Wybierz pozycję + Dodaj, aby otworzyć okno wysuwane Dodawanie tożsamości zarządzanej przypisanej przez użytkownika.

  4. Wybierz subskrypcję użytą wcześniej do utworzenia tożsamości.

  5. Wyszukaj pozycję MigrationIdentity według nazwy i wybierz ją z wyników wyszukiwania.

  6. Wybierz pozycję Dodaj , aby skojarzyć tożsamość z aplikacją.

    A screenshot showing how to assign a managed identity.

Tworzenie użytkownika bazy danych dla tożsamości i przypisywanie ról

Utwórz użytkownika bazy danych SQL, który mapuje z powrotem na tożsamość zarządzaną przypisaną przez użytkownika. Przypisz użytkownikowi niezbędne role SQL, aby umożliwić aplikacji odczytywanie, zapisywanie i modyfikowanie danych i schematu bazy danych.

  1. W witrynie Azure Portal przejdź do bazy danych SQL i wybierz pozycję Edytor zapytań (wersja zapoznawcza).

  2. Wybierz pozycję Kontynuuj po <username> prawej stronie ekranu, aby zalogować się do bazy danych przy użyciu konta.

  3. W widoku edytora zapytań uruchom następujące polecenia języka 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.

    Uruchomienie tych poleceń powoduje przypisanie roli Współautor bazy danych SQL do tożsamości zarządzanej przypisanej przez użytkownika. Ta rola umożliwia tożsamości odczytywanie, zapisywanie i modyfikowanie danych i schematu bazy danych.


Ważne

Należy zachować ostrożność podczas przypisywania ról użytkowników bazy danych w środowiskach produkcyjnych przedsiębiorstwa. W tych scenariuszach aplikacja nie powinna wykonywać wszystkich operacji przy użyciu jednej tożsamości z podwyższonym poziomem uprawnień. Spróbuj zaimplementować zasadę najniższych uprawnień, konfigurując wiele tożsamości z określonymi uprawnieniami dla określonych zadań.

Więcej informacji na temat konfigurowania ról bazy danych i zabezpieczeń można uzyskać w następujących zasobach:

Aktualizowanie parametrów połączenia

Zaktualizuj konfigurację aplikacji platformy Azure, aby używać formatu parametry połączenia bez hasła. ciągi Połączenie ion są zwykle przechowywane jako zmienne środowiskowe w środowisku hostingu aplikacji. Poniższe instrukcje koncentrują się na usłudze App Service, ale inne usługi hostingowe platformy Azure zapewniają podobne konfiguracje.

  1. Przejdź do strony konfiguracji wystąpienia usługi App Service i znajdź parametry połączenia usługi Azure SQL Database.

  2. Wybierz ikonę edycji i zaktualizuj wartość parametry połączenia, aby odpowiadała następującemu formatowi. <database-server-name> Zmień symbole zastępcze i <database-name> na wartości własnej usługi.

    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. Zapisz zmiany i uruchom ponownie aplikację, jeśli nie zostanie to wykonane automatycznie.

Testowanie aplikacji

Przetestuj aplikację, aby upewnić się, że wszystko nadal działa. Propagacja wszystkich zmian w środowisku platformy Azure może potrwać kilka minut.

Następne kroki

W tym samouczku przedstawiono sposób migrowania aplikacji do połączeń bez hasła.

Aby zapoznać się z pojęciami omówionymi w tym artykule, zapoznaj się z następującymi zasobami: