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:
- Użyj programu SQL Server 2022.
- Zarejestruj maszynę wirtualną z programem SQL Server przy użyciu rozszerzenia agenta Iaas programu SQL Server w dowolnej chmurze.
- Masz istniejącą tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika w tej samej dzierżawie firmy Microsoft co maszyna wirtualna z programem SQL Server. Skonfiguruj tożsamości zarządzane przy użyciu witryny Azure Portal , aby dowiedzieć się więcej.
- Interfejs wiersza polecenia platformy Azure w wersji 2.48.0 lub nowszej , jeśli zamierzasz użyć interfejsu wiersza polecenia platformy Azure do skonfigurowania uwierzytelniania usługi Microsoft Entra dla maszyny wirtualnej z programem SQL Server.
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.All
i 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:
Otwórz role identyfikatora entra firmy Microsoft i administratorów w witrynie Azure Portal:
Wpisz Czytniki katalogów w polu wyszukiwania, a następnie wybierz czytelników katalogu roli, aby otworzyć czytniki katalogów | Strona Przypisania:
W czytnikach katalogów | Strona Przypisania wybierz pozycję + Dodaj przypisania , aby otworzyć stronę Dodawanie przypisania .
Na stronie Dodawanie przypisań wybierz pozycję Brak wybranego elementu członkowskiego w obszarze Wybierz członków, aby otworzyć stronę Wybierz członka.
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ń .
Sprawdź, czy wybrana tożsamość jest widoczna w obszarze Wybierz członków , a następnie wybierz pozycję Dalej.
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.
W czytnikach katalogów | Strona Przypisania potwierdź, że nowo dodana tożsamość jest widoczna w obszarze Czytelnicy katalogu.
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.
Nawiązywanie połączenia z programem Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
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>'"
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}
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}
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:
- Przejdź do pozycji Microsoft Entra ID w witrynie Azure Portal.
- Wybierz pozycję Aplikacje dla przedsiębiorstw, a następnie wybierz pozycję Wszystkie aplikacje w obszarze Zarządzaj.
- Filtruj typ aplikacji według
Managed identities
. - 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.All
Application.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:
Przejdź do zasobu maszyn wirtualnych SQL w witrynie Azure Portal.
Wybierz pozycję Konfiguracja zabezpieczeń w obszarze Zabezpieczenia.
Wybierz pozycję Włącz w obszarze Uwierzytelnianie entra firmy Microsoft.
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.
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.All
GroupMember.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ń: