Udostępnij za pośrednictwem


Włączanie uwierzytelniania entra firmy Microsoft dla programu SQL Server na maszynach wirtualnych platformy Azure

Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure

W tym artykule przedstawiono sposób włączania uwierzytelniania za pomocą identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory) dla programu SQL Server na maszynach wirtualnych platformy Azure.

Omówienie

Począwszy od programu SQL Server 2022, możesz nawiązać połączenie z programem SQL Server na maszynach wirtualnych platformy Azure przy użyciu jednej z następujących metod uwierzytelniania firmy Microsoft Entra:

  • Hasło oferuje uwierzytelnianie przy użyciu poświadczeń usługi Microsoft Entra
  • Usługa Universal with MFA dodaje uwierzytelnianie wieloskładnikowe
  • Zintegrowane używa dostawców federacyjnych, takich jak Active Directory Federation Services (ADFS), aby włączyć środowiska logowania jednokrotnego
  • Jednostka usługi umożliwia uwierzytelnianie z aplikacji platformy Azure
  • Tożsamość zarządzana umożliwia uwierzytelnianie z aplikacji przypisanych tożsamości firmy Microsoft

Podczas tworzenia logowania do usługi Microsoft Entra dla programu SQL Server i gdy użytkownik nawiązuje połączenie przy użyciu tego identyfikatora logowania, program SQL Server używa tożsamości zarządzanej do wykonywania zapytań względem programu Microsoft Graph. Po włączeniu uwierzytelniania microsoft Entra dla programu SQL Server na maszynie wirtualnej platformy Azure należy podać tożsamość zarządzaną, której program SQL Server może używać do komunikowania się z identyfikatorem Entra firmy Microsoft. Ta tożsamość zarządzana musi mieć uprawnienia do wykonywania zapytań dotyczących programu Microsoft Graph.

Podczas włączania tożsamości zarządzanej dla zasobu na platformie Azure granica zabezpieczeń tożsamości to zasób, do którego jest dołączony. Na przykład granica zabezpieczeń dla maszyny wirtualnej z włączonymi tożsamościami zarządzanymi dla zasobów platformy Azure to maszyna wirtualna. Każdy kod uruchomiony na tej maszynie wirtualnej może wywołać punkt końcowy tożsamości zarządzanych i tokeny żądania. Po włączeniu tożsamości zarządzanej dla programu SQL Server na maszynach wirtualnych platformy Azure tożsamość jest dołączona do maszyny wirtualnej, więc granica zabezpieczeń jest maszyną wirtualną. Środowisko jest podobne podczas pracy z innymi zasobami, które obsługują tożsamości zarządzane. Aby uzyskać więcej informacji, zapoznaj się z często zadawanymi pytaniami dotyczącymi tożsamości zarządzanych.

Tożsamości zarządzane przypisane przez system i przypisane przez użytkownika używane do uwierzytelniania w usłudze Microsoft Entra z programem SQL Server na maszynach wirtualnych platformy Azure oferują następujące korzyści:

  • Tożsamość zarządzana przypisana przez system oferuje uproszczony proces konfiguracji. Ponieważ tożsamość zarządzana ma ten sam okres istnienia co maszyna wirtualna, nie trzeba jej usuwać oddzielnie po usunięciu maszyny wirtualnej.
  • Tożsamość zarządzana przypisana przez użytkownika zapewnia skalowalność, ponieważ może być dołączona do usługi i używana do uwierzytelniania entra firmy Microsoft dla wielu programów SQL Server na maszynach wirtualnych platformy Azure.

Aby rozpocząć pracę z tożsamościami zarządzanymi, zapoznaj się z artykułem Konfigurowanie tożsamości zarządzanych przy użyciu witryny Azure Portal.

Wymagania wstępne

Aby włączyć uwierzytelnianie microsoft Entra w programie SQL Server, potrzebne są następujące wymagania wstępne:

Udzielenie uprawnień

Tożsamość zarządzana, którą chcesz ułatwić uwierzytelnianie między programem SQL Server i identyfikatorem Firmy Microsoft Entra, musi mieć następujące trzy uprawnienia aplikacji programu Microsoft Graph (role aplikacji): User.Read.All, GroupMember.Read.Alli Application.Read.All.

Alternatywnie dodanie tożsamości zarządzanej do roli Czytelnicy katalogu firmy Microsoft daje wystarczające uprawnienia. Innym sposobem przypisania roli Czytelnicy katalogu do tożsamości zarządzanej jest przypisanie roli Czytelnicy katalogu do grupy w identyfikatorze Entra firmy Microsoft. Właściciele grup mogą następnie dodać tożsamość zarządzaną maszyny wirtualnej jako członka tej grupy. Minimalizuje to zaangażowanie administratorów globalnych firmy Microsoft Entra i deleguje odpowiedzialność właścicielom grup.

Dodawanie tożsamości zarządzanej do roli

W tej sekcji wyjaśniono, jak dodać tożsamość zarządzaną do roli Czytelnicy katalogu w identyfikatorze Entra firmy Microsoft. Aby wprowadzić zmiany w przypisaniach ról Czytelnicy katalogu, musisz mieć uprawnienia administratora globalnego. Jeśli nie masz wystarczających uprawnień, skontaktuj się z administratorem firmy Microsoft Entra, aby wykonać następujące kroki.

Aby udzielić tożsamości zarządzanej roli Czytelnicy katalogu, wykonaj następujące kroki:

  1. Otwórz role identyfikatora entra firmy Microsoft i administratorów w witrynie Azure Portal:

  2. Wpisz Czytniki katalogów w polu wyszukiwania, a następnie wybierz czytelników katalogu roli, aby otworzyć czytniki katalogów | Strona Przypisania:

    Zrzut ekranu przedstawiający stronę Role i administratorzy witryny Azure Portal, wyszukując i wybierając rolę Czytelnicy katalogu.

  3. W czytnikach katalogów | Strona Przypisania wybierz pozycję + Dodaj przypisania , aby otworzyć stronę Dodawanie przypisania .

    Zrzut ekranu przedstawiający stronę Czytelnicy katalogu w witrynie Azure Portal.

  4. Na stronie Dodawanie przypisań wybierz pozycję Brak wybranego elementu członkowskiego w obszarze Wybierz członków, aby otworzyć stronę Wybierz członka.

    Zrzut ekranu przedstawiający stronę dodawania przypisania w witrynie Azure Portal z wyróżnioną pozycją Brak elementu członkowskiego.

  5. Na stronie Wybieranie elementu członkowskiego wyszukaj nazwę tożsamości zarządzanej, której chcesz użyć z maszyną wirtualną programu SQL Server, i dodaj ją do roli Czytelnicy katalogu. W przypadku tożsamości zarządzanych przypisanych przez system wyszukaj nazwę maszyny wirtualnej. Użyj pozycji Wybierz , aby potwierdzić tożsamość i wrócić do strony Dodawanie przypisań .

    Zrzut ekranu przedstawiający wyszukiwanie członków do wybrania w witrynie Azure Portal.

  6. Sprawdź, czy wybrana tożsamość jest widoczna w obszarze Wybierz członków , a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający stronę Dodawanie przypisania w witrynie Azure Portal z maszyną wirtualną VM2 dodaną jako przypisanie.

  7. Sprawdź, czy typ przypisania jest ustawiony na Aktywny , a pole obok pola Trwale przypisane jest zaznaczone. Wprowadź uzasadnienie biznesowe, takie jak dodawanie uprawnień roli Czytelnik katalogu do tożsamości przypisanej przez system dla maszyny WIRTUALNEJ VM2 , a następnie wybierz pozycję Przypisz , aby zapisać ustawienia i wrócić do czytelników katalogu | Strona Przypisania.

    Zrzut ekranu przedstawiający ustawienia w obszarze Dodawanie przypisania w witrynie Azure Portal.

  8. W czytnikach katalogów | Strona Przypisania potwierdź, że nowo dodana tożsamość jest widoczna w obszarze Czytelnicy katalogu.

    Zrzut ekranu przedstawiający stronę Czytelnicy katalogu w witrynie Azure Portal z przypisaniem maszyny wirtualnej dodanym do roli.

Dodawanie uprawnień roli aplikacji

Za pomocą programu Azure PowerShell można udzielić ról aplikacji tożsamości zarządzanej. W tym celu wykonaj następujące kroki:

Uwaga

Moduły usług Azure AD i MSOnline programu PowerShell są przestarzałe od 30 marca 2024 r. Aby dowiedzieć się więcej, przeczytaj aktualizację o wycofaniu. Po tej dacie obsługa tych modułów jest ograniczona do pomocy dotyczącej migracji do zestawu MICROSOFT Graph PowerShell SDK i poprawek zabezpieczeń. Przestarzałe moduły będą nadal działać do 30 marca 2025 r.

Zalecamy migrację do programu Microsoft Graph PowerShell w celu interakcji z identyfikatorem Entra firmy Microsoft (dawniej Azure AD). W przypadku typowych pytań dotyczących migracji zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji. Uwaga: wersje 1.0.x usługi MSOnline mogą wystąpić zakłócenia po 30 czerwca 2024 r.

  1. Nawiązywanie połączenia z programem Microsoft Graph

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. Pobierz tożsamość zarządzaną:

    $Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
    
  3. User.Read.All Przypisz rolę do tożsamości:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  4. Przypisz GroupMember.Read.All rolę do tożsamości:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  5. Przypisz Application.Read.All rolę do tożsamości:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    

Uprawnienia zostały przypisane do tożsamości zarządzanej, wykonując następujące czynności:

  1. Przejdź do pozycji Microsoft Entra ID w witrynie Azure Portal.
  2. Wybierz pozycję Aplikacje dla przedsiębiorstw, a następnie wybierz pozycję Wszystkie aplikacje w obszarze Zarządzaj.
  3. Filtruj typ aplikacji według Managed identities.
  4. Wybierz tożsamość zarządzaną, a następnie wybierz pozycję Uprawnienia w obszarze Zabezpieczenia. Powinny zostać wyświetlone następujące uprawnienia: User.Read.All, , GroupMember.Read.AllApplication.Read.All.

Włączanie komunikacji wychodzącej

Aby uwierzytelnianie firmy Microsoft Entra działało, potrzebne są następujące elementy:

  • Komunikacja wychodząca z programu SQL Server do identyfikatora Entra firmy Microsoft i punktu końcowego programu Microsoft Graph.
  • Komunikacja wychodząca z klienta SQL do identyfikatora Entra firmy Microsoft.

Domyślne konfiguracje maszyn wirtualnych platformy Azure umożliwiają komunikację wychodzącą z punktem końcowym programu Microsoft Graph, a także identyfikator firmy Microsoft Entra, ale niektórzy użytkownicy decydują się ograniczyć komunikację wychodzącą przy użyciu zapory na poziomie systemu operacyjnego lub sieciowej grupy zabezpieczeń sieci wirtualnej platformy Azure.

Zapory na maszynie wirtualnej z programem SQL Server i każdy klient SQL muszą zezwalać na ruch wychodzący na portach 80 i 443.

Reguła sieciowej grupy zabezpieczeń sieci wirtualnej platformy Azure dla sieci wirtualnej, która hostuje maszynę wirtualną z programem SQL Server, powinna mieć następujące elementy:

  • Tag usługi o wartości AzureActiveDirectory.
  • Zakresy portów docelowych: 80, 443.
  • Akcja ustawiona na Zezwalaj.
  • Wysoki priorytet (co jest małą liczbą).

Włączanie uwierzytelniania entra firmy Microsoft

Możesz włączyć uwierzytelnianie microsoft Entra na maszynie wirtualnej z programem SQL Server przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Uwaga

Po włączeniu uwierzytelniania firmy Microsoft Entra możesz wykonać te same kroki w tej sekcji, aby zmienić konfigurację tak, aby korzystała z innej tożsamości zarządzanej.

Aby włączyć uwierzytelnianie firmy Microsoft na maszynie wirtualnej z programem SQL Server, wykonaj następujące kroki:

  1. Przejdź do zasobu maszyn wirtualnych SQL w witrynie Azure Portal.

  2. Wybierz pozycję Konfiguracja zabezpieczeń w obszarze Zabezpieczenia.

  3. Wybierz pozycję Włącz w obszarze Uwierzytelnianie entra firmy Microsoft.

  4. Wybierz typ tożsamości zarządzanej z listy rozwijanej Przypisane przez system lub Przypisane przez użytkownika. Jeśli wybierzesz przypisaną przez użytkownika, wybierz tożsamość, której chcesz użyć do uwierzytelniania w programie SQL Server na maszynie wirtualnej platformy Azure, z wyświetlonej listy rozwijanej Tożsamość zarządzana przypisana przez użytkownika.

    Zrzut ekranu przedstawiający stronę konfiguracji zabezpieczeń maszyny wirtualnej SQL w witrynie Azure Portal z wybranym uwierzytelnianiem firmy Microsoft Entra.

Po włączeniu uwierzytelniania firmy Microsoft Entra możesz wykonać te same kroki, aby zmienić tożsamość zarządzaną, która może uwierzytelniać się na maszynie wirtualnej z programem SQL Server.

Uwaga

The selected managed identity does not have enough permissions for Microsoft Entra authentication Błąd wskazuje, że uprawnienia nie zostały prawidłowo przypisane do wybranej tożsamości. Zapoznaj się z sekcją Udzielanie uprawnień , aby przypisać odpowiednie uprawnienia.

Ograniczenia

Rozważ następujące ograniczenia:

  • Uwierzytelnianie Microsoft Entra jest obsługiwane tylko w przypadku programu SQL Server 2022 uruchomionego na maszynach wirtualnych z systemem Windows zarejestrowanych w rozszerzeniu agenta IaaS SQL wdrożonego w dowolnej chmurze. Obsługiwane są tylko obsługiwane scenariusze rozszerzenia agenta IaaS SQL, takie jak wystąpienie domyślne lub pojedyncze nazwane wystąpienie. Wystąpienia klastra trybu failover nie są obsługiwane.
  • Tożsamość wybrana do uwierzytelniania w programie SQL Server musi mieć rolę Czytelnicy katalogu w identyfikatorze Entra firmy Microsoft lub trzech następujących trzech uprawnieniach aplikacji programu Microsoft Graph (role aplikacji): User.Read.All, i .Application.Read.AllGroupMember.Read.All
  • Po włączeniu uwierzytelniania entra firmy Microsoft nie ma możliwości jego wyłączenia.
  • Obecnie uwierzytelnianie w programie SQL Server na maszynach wirtualnych platformy Azure za pośrednictwem uwierzytelniania firmy Microsoft Entra przy użyciu metody FIDO2 nie jest obsługiwane.

Następne kroki

Zapoznaj się z najlepszymi rozwiązaniami w zakresie zabezpieczeń dla programu SQL Server.

Inne artykuły dotyczące uruchamiania programu SQL Server na maszynach wirtualnych platformy Azure można znaleźć w temacie Sql Server on Azure Virtual Machines overview (Omówienie programu SQL Server na maszynach wirtualnych platformy Azure). Jeśli masz pytania dotyczące maszyn wirtualnych z programem SQL Server, zapoznaj się z często zadawanymi pytaniami.

Aby dowiedzieć się więcej, zobacz inne artykuły z tej serii najlepszych rozwiązań: