Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł pokazuje, jak używać Microsoft Entra ID do uwierzytelniania w usłudze Azure Synapse Analytics.
Uwaga
Nazwy główne serwera Microsoft Entra są obecnie dostępne w wersji zapoznawczej dla usługi Azure Synapse Analytics.
Prerequisites
Aby korzystać z uwierzytelniania Microsoft Entra z Azure Synapse Analytics, potrzebne są następujące warunki wstępne:
- Tenant Microsoft Entra zawierający użytkowników i grupy.
- Istniejąca przestrzeń robocza Azure Synapse lub samodzielna dedykowana pula SQL.
Tworzenie i uzupełnianie klienta Microsoft Entra
Zanim będziesz mógł skonfigurować uwierzytelnianie Microsoft Entra dla Azure Synapse Analytics, musisz stworzyć tenant Microsoft Entra i wypełnić go użytkownikami oraz grupami. Możesz zarządzać dzierżawcami Microsoft Entra całkowicie w Azure lub używać ich do federacji lokalnej usługi domena usługi Active Directory Services.
Aby uzyskać więcej informacji, zobacz:
- Co to jest Microsoft Entra ID?
- Integrowanie lokalnych tożsamości użytkowników z Microsoft Entra ID
- Dodaj nazwę domeny do Microsoft Entra ID
- Co to jest federacja z Microsoft Entra ID?
- Synchronizacja katalogu z Microsoft Entra ID
- Zarządzaj Microsoft Entra ID przy użyciu programu Windows PowerShell
- Wymagane porty i protokoły dla tożsamości hybrydowej
Ustawianie administratora Microsoft Entra
Aby korzystać z uwierzytelniania Microsoft Entra, Twój zasób Azure Synapse potrzebuje administratora Microsoft Entra.
Możesz też skonfigurować administratora Microsoft Entra podczas tworzenia zasobu. Jeśli masz już skonfigurowanego administratora, pomiń tę sekcję.
Obszar roboczy usługi Azure Synapse
Dla przestrzeni roboczej Azure Synapse skonfiguruj administratora Microsoft Entra w przestrzeni roboczej. Więcej informacji można znaleźć w sekcji Struktura administratora.
Samodzielna dedykowana pula SQL
Gdy ustawiasz administratora Microsoft Entra, włączasz uwierzytelnianie Microsoft Entra dla logicznego serwera, który hostuje oddzielną dedykowaną pulę SQL. Możesz ustawić administratora, korzystając z portalu Azure, PowerShella, Azure CLI lub API REST.
W portalu Azure można znaleźć nazwę serwera logical
- W polu server name na stronie Overview w samodzielnej dedykowanej puli SQL w Azure Synapse Analytics.
Aby ustawić administratora Microsoft Entra dla serwera logicznego w portalu Azure, wykonaj następujące kroki:
W panelu Katalogi + subskrypcje portalu Azure wybierz katalog zawierający Twój zasób Azure Synapse jako Aktualny katalog.
Wyszukaj serwery SQL , a następnie wybierz logicznego serwera dla dedykowanej puli SQL, aby otworzyć panel serwera SQL .
W okienku SQL server dla serwera logicznego wybierz Microsoft Entra ID w obszarze Settings aby otworzyć okienko Microsoft Entra ID.
W okienku Microsoft Entra ID wybierz pozycję Set admin aby otworzyć okienko Microsoft Entra ID.
Okienko Microsoft Entra ID zawiera wszystkich użytkowników, grupy i aplikacje w bieżącym katalogu oraz umożliwia wyszukiwanie według nazwy, aliasu lub identyfikatora. Znajdź żądaną tożsamość administratora firmy Microsoft Entra i wybierz ją, a następnie wybierz pozycję Wybierz , aby zamknąć okienko.
Na górze strony Microsoft Entra ID dla twojego serwera logicznego, wybierz Zapisz.
Identyfikator Object ID jest wyświetlany obok nazwy administratora dla użytkowników i grup Microsoft Entra. W przypadku aplikacji (jednostek usługi) zostanie wyświetlony identyfikator aplikacji.
Proces zmiany administratora może potrwać kilka minut. Następnie nowy administrator pojawi się w polu Microsoft Entra admin.
Aby usunąć administratora, w górnej części strony Microsoft Entra ID wybierz pozycję Usuń administratora a następnie wybierz pozycję Zapisz. Usunięcie administratora Microsoft Entra powoduje wyłączenie uwierzytelniania Microsoft Entra dla serwera logicznego.
Uwaga
Administrator Microsoft Entra jest przechowywany w bazie danych master serwera jako użytkownik (główny obiekt bazy danych). Ponieważ nazwy główne bazy danych muszą być unikatowe, nazwa wyświetlana administratora nie może być taka sama jak nazwa żadnego użytkownika w bazie danych serwera master . Jeśli użytkownik o nazwie już istnieje, instalacja administratora Microsoft Entra zakończy się niepowodzeniem i wycofa się, co oznacza, że nazwa jest już używana.
Przypisywanie uprawnień programu Microsoft Graph
Dla niektórych operacji Azure Synapse Analytics wymaga uprawnień do zapytań do Microsoft Graph, jak wyjaśniono w uprawnieniach Microsoft Graph. Azure Synapse Analytics obsługuje precyzyjne uprawnienia interfejsu API Microsoft Graph, takie jak User.Read.All, GroupMember.Read.All oraz Application.Read.All, dla tożsamości zasobu. Takie podejście jest zgodne z zasadą najniższych uprawnień i jest zalecane. Możesz też wykorzystać rolę Directory Readers jako szerszą alternatywę. Więcej informacji można znaleźć w Managed identities in Microsoft Entra for Azure Synapse Analytics.
Rola Czytnika Katalogów
Instrukcję krok po kroku można znaleźć w artykule Przypisz rolę Directory Readers do grupy Microsoft Entra.
Poniższy skrypt PowerShell dodaje tożsamość zasobów Azure Synapse do roli Directory Readers.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
administrator usługi Microsoft Entra może teraz tworzyć serwerowe podmioty zabezpieczeń Microsoft Entra (loginy) oraz podmioty zabezpieczeń bazy danych (użytkownicy).
Tworzenie podmiotów zabezpieczeń Microsoft Entra w programie SQL
Aby połączyć się z bazą danych w Azure Synapse Analytics przy użyciu uwierzytelniania Microsoft Entra, musisz skonfigurować w bazie dla tej tożsamości podmiot zabezpieczeń z co najmniej uprawnieniem CONNECT.
Uprawnienia użytkownika bazy danych
Gdy tworzysz użytkownika bazy danych, domyślnie otrzymuje on uprawnienie CONNECT do bazy danych. Użytkownik bazy danych dziedziczy również uprawnienia w dwóch okolicznościach:
- Użytkownik jest członkiem grupy Microsoft Entra, która również ma przypisane uprawnienia na serwerze.
- Tworzysz użytkownika z logowania, a on dziedziczy uprawnienia przypisane przez serwer do logowania, które dotyczą bazy danych.
Zarządzanie uprawnieniami dla elementów zabezpieczeń serwera i bazy danych działa tak samo, niezależnie od rodzaju elementu zabezpieczeń (np. Microsoft Entra ID, uwierzytelnianie SQL itp.). Przyznaj uprawnienia rolom bazy danych zamiast bezpośrednio przyznawać uprawnienia użytkownikom. Następnie dodaj użytkowników do ról z odpowiednimi uprawnieniami. Takie podejście upraszcza długoterminowe zarządzanie uprawnieniami i zmniejsza prawdopodobieństwo, że tożsamość zachowa dostęp, gdy nie powinien być już przyznany.
Aby uzyskać więcej informacji, zobacz:
- Uprawnienia silnika bazy danych i przykłady
- Blog: podstawowe informacje o uprawnieniach Database Engine
- Autoryzuj dostęp do bazy danych w usłudze Azure Synapse Analytics
Użytkownicy zawartej bazy danych
Użytkownik zawartej bazy danych jest typem użytkownika SQL, który nie jest połączony z logowaniem w master bazie danych. Aby utworzyć użytkownika autonomicznej bazy danych Microsoft Entra, połącz się z bazą danych za pomocą tożsamości Microsoft Entra, która ma co najmniej uprawnienie ALTER ANY USER. Poniższy przykład T-SQL tworzy podmiot zabezpieczeń bazy danych o nazwie Microsoft_Entra_principal_name na podstawie identyfikatora Microsoft Entra.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Aby utworzyć ograniczonego użytkownika bazy danych dla grupy Microsoft Entra, wprowadź nazwę wyświetlaną grupy:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Aby utworzyć użytkownika zawartej bazy danych dla tożsamości zarządzanej lub jednostki usługi, wprowadź nazwę wyświetlaną tożsamości:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Aby utworzyć użytkownika bazy danych skonfigurowanej dla użytkownika Microsoft Entra, wprowadź nazwę główną użytkownika tożsamości:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Użytkownicy logujący się
Uwaga
Microsoft Entra server principals (logins) są obecnie w podglądzie dla Azure Synapse Analytics.
Obsługiwane są zasady serwera Microsoft Entra (lub identyfikatory logowania), co oznacza, że użytkownicy zamkniętej bazy danych nie są wymagani. Podmioty bazy danych (użytkownicy) można utworzyć na podstawie podmiotu serwera, co oznacza, że użytkownicy Microsoft Entra mogą dziedziczyć przypisane uprawnienia na poziomie serwera dla logowania.
CREATE USER [appName] FROM LOGIN [appName];
Aby uzyskać informacje na temat tworzenia głównych serwera Microsoft Entra (loginów), zobacz CREATE LOGIN.
Użytkownicy zewnętrzni
Nie można bezpośrednio utworzyć użytkownika bazy danych dla tożsamości zarządzanej w innej dzierżawie Microsoft Entra niż ta skojarzona z subskrypcją Azure. Możesz jednak importować użytkowników z innych katalogów do powiązanego katalogu jako użytkowników zewnętrznych. Możesz następnie użyć ich do tworzenia użytkowników autonomicznych bazy danych, którzy mają dostęp do bazy. Użytkownicy zewnętrzni mogą również uzyskać dostęp za pośrednictwem członkostwa w grupach firmy Microsoft Entra.
Przykłady: Aby utworzyć użytkownika kontenerowej bazy danych reprezentującego użytkownika domeny federacyjnej lub zarządzanej Microsoft Entra:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Konto użytkownika domeny sfederowanej, które importujesz do domeny zarządzanej jako użytkownik zewnętrzny, musi korzystać z tożsamości domeny zarządzanej.
Zagadnienia dotyczące nazw
Nie możesz używać specjalnych znaków, takich jak dwukropek : czy ampersand, & w nazwach użytkowników w instrukcjach T-SQL CREATE LOGIN i CREATE USER.
Microsoft Entra ID i Azure Synapse Analytics różnią się sposobem zarządzania użytkownikami w jednym kluczowym aspekcie: Microsoft Entra ID dopuszcza zduplikowane nazwy wyświetlane w tenantcie, podczas gdy Azure Synapse Analytics wymaga unikalnych nazw podmiotów zabezpieczeń serwera w dedykowanej puli SQL oraz unikalnych nazw podmiotów zabezpieczeń bazy danych w bazie danych.
Uprawnienia programu Microsoft Graph
Polecenie CREATE USER ... FROM EXTERNAL PROVIDER wymaga, aby Azure Synapse Analytics uzyskało dostęp do Microsoft Entra ID (zewnętrznego dostawcy) w imieniu zalogowanego użytkownika. Czasami Microsoft Entra ID zwraca wyjątek.
- Może wystąpić błąd SQL 33134, który zawiera komunikat o błędzie specyficzny dla Microsoft Entra ID. Błąd zazwyczaj informuje, że dostęp został odmówiony, że użytkownik musi zarejestrować się w MFA, aby uzyskać dostęp do zasobu, lub że dostęp między aplikacjami własnymi musi być obsługiwany za pośrednictwem wstępnego uwierzytelniania. W pierwszych dwóch przypadkach problem jest zwykle spowodowany zasadami Dostępu Warunkowego ustawionymi w dzierżawie Microsoft Entra użytkownika, które uniemożliwiają mu dostęp do zewnętrznego dostawcy. Aktualizacja zasad dostępu warunkowego, aby umożliwić dostęp do aplikacji
00000003-0000-0000-c000-000000000000(identyfikatora aplikacji interfejsu API Microsoft Graph), powinna rozwiązać problem. Jeśli błąd wskazuje, że dostęp między aplikacjami pierwszej strony musi być obsługiwany za pośrednictwem wstępnego uwierzytelniania, przyczyną problemu jest to, że użytkownik jest zalogowany jako główny podmiot usługi. Polecenie powinno zakończyć się powodzeniem, jeśli zostanie wykonane przez użytkownika. - Jeśli zostanie wyświetlony komunikat Limit czasu połączenia wygasł, może być konieczne ustawienie parametru
TransparentNetworkIPResolutionłańcucha połączenia na false. Aby uzyskać więcej informacji, zobacz Problem z przekroczeniem limitu czasu połączenia w .NET Framework 4.6.1 — TransparentNetworkIPResolution.
Aby uzyskać więcej informacji na temat tworzenia użytkowników baz danych w środowisku ograniczonym na podstawie tożsamości Microsoft Entra, zobacz TWORZENIE UŻYTKOWNIKA.
Konfiguracja uwierzytelniania wieloskładnikowego
Aby zwiększyć bezpieczeństwo, rozważ skonfigurowanie uwierzytelniania wieloskładnikowego (MFA), które wymaga od użytkownika użycia drugiej metody uwierzytelnienia się w bazie danych, takiej jak rozmowa telefoniczna lub aplikacja uwierzytelniająca.
Aby korzystać z uwierzytelniania wieloskładnikowego w Azure Synapse Analytics, najpierw należy włączyć uwierzytelnianie wieloskładnikowe, a następnie użyć polityki dostępu warunkowego do wymuszenia MFA.
Połącz się z Microsoft Entra
Po skonfigurowaniu uwierzytelniania Microsoft Entra możesz użyć go do połączenia się z Azure Synapse Analytics za pomocą SQL Server Management Studio lub SQL Server Data Tools oraz skonfigurować aplikacje klienckie do łączenia się przy użyciu tożsamości Microsoft Entra.
Rozwiązywanie problemów z uwierzytelnianiem Microsoft Entra
Wskazówki można znaleźć w artykule Rozwiązywanie problemów związanych z uwierzytelnianiem Microsoft Entra.