Włączanie uwierzytelniania bazy danych Entra firmy Microsoft
W tej lekcji pokazano, jak używać identyfikatora Entra firmy Microsoft do uwierzytelniania w usługach Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics.
Uwaga / Notatka
Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Alternatywnie można również skonfigurować uwierzytelnianie microsoft Entra dla programu SQL Server na maszynach wirtualnych platformy Azure.
Wymagania wstępne
Aby korzystać z uwierzytelniania Microsoft Entra z zasobem Azure SQL, musisz spełnić następujące wymagania:
- Najemca Microsoft Entra zapełniony użytkownikami i grupami.
- Istniejący zasób usługi Azure SQL, taki jak Azure SQL Database lub Azure SQL Managed Instance.
Utwórz i zapełnij dzierżawę firmy Microsoft Entra
Przed skonfigurowaniem uwierzytelniania Microsoft Entra dla zasobu Azure SQL należy utworzyć dzierżawę Microsoft Entra i wypełnić ją użytkownikami i grupami. Tenanci Microsoft Entra mogą być zarządzani w całości na platformie Azure lub używani do federacji z lokalną usługą domenową Active Directory.
Aby uzyskać więcej informacji, zobacz:
- Czym jest usługa Microsoft Entra ID?
- Integrowanie lokalnych tożsamości użytkowników z Microsoft Entra ID
- Dodawanie nazwy domeny do identyfikatora Entra firmy Microsoft
- Co to jest federacja z identyfikatorem Entra firmy Microsoft?
- Synchronizacja katalogów z identyfikatorem Entra firmy Microsoft
- Zarządzanie identyfikatorem Entra firmy Microsoft przy użyciu programu Windows PowerShell
- Wymagane porty i protokoły tożsamości hybrydowej
Ustaw administratora Microsoft Entra
Aby korzystać z uwierzytelniania Microsoft Entra z zasobem, musi mieć ustawionego administratora Microsoft Entra. Chociaż koncepcyjnie kroki są takie same w przypadku usług Azure SQL Database, Azure Synapse Analytics i Azure SQL Managed Instance, w tej sekcji opisano szczegółowo różne interfejsy API i środowiska portalu, które należy wykonać dla poszczególnych produktów.
Administrator Microsoft Entra można również skonfigurować przy tworzeniu zasobu Azure SQL. Jeśli administrator entra firmy Microsoft jest już skonfigurowany, pomiń tę sekcję.
Usługi Azure SQL Database i Azure Synapse Analytics
Ustawienie administratora Microsoft Entra umożliwia uwierzytelnianie Microsoft Entra dla serwera logicznego, jeśli chodzi o Azure SQL Database i Azure Synapse Analytics. Możesz ustawić administratora firmy Microsoft Entra dla serwera przy użyciu witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsów API REST.
W witrynie Azure Portal można znaleźć nazwę serwera logicznego
- W polu nazwy serwera na zakładce Przegląd usługi Azure SQL Database.
- W polu nazwa serwera na stronie Przegląd samodzielnej dedykowanej puli SQL w usłudze Azure Synapse Analytics.
- W odpowiednim punkcie końcowym SQL na stronie Przegląd obszaru roboczego usługi Azure Synapse Analytics.
- Portal Azure
- PowerShell
- "Azure CLI"
- API REST
Aby ustawić administratora firmy Microsoft Entra dla serwera logicznego w witrynie Azure Portal, wykonaj następujące kroki:
- W okienku Katalogi i subskrypcje witryny Azure Portal wybierz katalog zawierający zasób usługi Azure SQL jako bieżący katalog.
- Wyszukaj serwery SQL, a następnie wybierz serwer logiczny dla zasobu bazy danych, aby otworzyć okienko serwera SQL.
- W okienku serwera SQL dla serwera logicznego wybierz pozycję Microsoft Entra ID w obszarze Ustawienia, aby otworzyć okienko Microsoft Entra ID.
- W okienku Microsoft Entra ID wybierz pozycję "Ustaw administratora", aby je otworzyć.
- Panel Microsoft Entra ID pokazuje wszystkich użytkowników, grupy i aplikacje w bieżącym katalogu i umożliwia wyszukiwanie według nazwy, aliasu lub identyfikatora. Znajdź żądaną tożsamość administratora firmy Microsoft Entra i wybierz ją, a następnie kliknij pozycję Wybierz, aby zamknąć okienko.
- W górnej części strony Microsoft Entra ID dla serwera logicznego wybierz pozycję Zapisz.
Identyfikator obiektu jest wyświetlany obok nazwy administratora dla użytkowników i grup firmy 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 administracyjnym Microsoft Entra.
Aby usunąć administratora, w górnej części strony Identyfikator entra firmy Microsoft 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 / Notatka
Administrator systemu Microsoft Entra jest zapisywany w głównej bazie danych serwera jako użytkownik (principał bazy danych). Ponieważ nazwy główne bazy danych muszą być unikatowe, nazwa wyświetlana administratora nie może być taka sama jak nazwa dowolnego użytkownika w bazie danych master serwera. Jeśli użytkownik o nazwie już istnieje, instalacja administratora firmy Microsoft Entra zakończy się niepowodzeniem i cofnie się, wskazując, że nazwa jest już używana.
Azure SQL Managed Instance
Ustawienie administratora Microsoft Entra umożliwia uwierzytelnianie Microsoft Entra dla usługi Azure SQL Managed Instance. Możesz ustawić administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL przy użyciu portalu Azure, programu PowerShell, CLI platformy Azure lub interfejsów API REST.
Aby udzielić uprawnień do odczytu zarządzanego wystąpienia SQL dla Microsoft Entra ID, korzystając z portalu Azure, zaloguj się jako administrator ról uprzywilejowanych i wykonaj następujące kroki:
- W witrynie Azure Portal w prawym górnym rogu wybierz swoje konto, a następnie wybierz pozycję Przełącz katalogi, aby potwierdzić, który katalog jest twoim bieżącym katalogiem. W razie potrzeby przełącz katalogi.
- W okienku Katalogi + subskrypcje portalu Azure wybierz katalog zawierający wystąpienie zarządzane jako bieżący katalog.
- Wyszukaj wystąpienia zarządzane SQL, a następnie wybierz wystąpienie zarządzane, aby otworzyć okienko wystąpienia zarządzanego SQL. Następnie wybierz pozycję Microsoft Entra ID w menu Ustawienia, aby otworzyć okienko Microsoft Entra ID dla twojej instancji.
- W panelu administracyjnym Microsoft Entra wybierz pozycję Ustaw administratora na pasku nawigacyjnym, aby otworzyć panel Microsoft Entra ID.
- W okienku Microsoft Entra ID wyszukaj użytkownika, zaznacz pole wyboru obok użytkownika lub grupy, aby być administratorem, a następnie naciśnij przycisk Wybierz, aby zamknąć okienko i wrócić do strony administratora firmy Microsoft Entra dla wystąpienia zarządzanego. W panelu Microsoft Entra ID są wyświetlane wszyscy członkowie i grupy w bieżącym katalogu. Nie można wybrać wyszarywanych użytkowników lub grup, ponieważ nie są one obsługiwane jako administratorzy firmy Microsoft Entra. Wybierz tożsamość, którą chcesz przypisać jako administrator.
- Na pasku nawigacyjnym strony administracyjnej usługi Microsoft Entra dla zarządzanego wystąpienia wybierz Zapisz, aby potwierdzić ustawienia administratora Microsoft Entra. Po zakończeniu operacji zmiany administratora nowy administrator pojawi się w polu administratora Microsoft Entra. Identyfikator obiektu jest wyświetlany obok nazwy administratora dla użytkowników i grup firmy Microsoft Entra. W przypadku aplikacji (jednostek usługi) zostanie wyświetlony identyfikator aplikacji.
Wskazówka
Aby usunąć administratora, wybierz pozycję Usuń administratora u góry strony Microsoft Entra ID, a następnie wybierz pozycję Zapisz.
Przypisywanie uprawnień programu Microsoft Graph
Usługa SQL Managed Instance potrzebuje uprawnień do odczytu identyfikatora entra firmy Microsoft w scenariuszach, takich jak autoryzowanie użytkowników, którzy łączą się za pośrednictwem członkostwa w grupie zabezpieczeń i tworzenia nowych użytkowników. Aby uwierzytelnianie Microsoft Entra działało, musisz przypisać tożsamość wystąpienia zarządzanego do roli Directory Readers. Można to zrobić przy użyciu witryny Azure Portal lub programu PowerShell.
W przypadku niektórych operacji usługi Azure SQL Database i Azure Synapse Analytics również wymagają uprawnień do wykonywania zapytań dotyczących programu Microsoft Graph, co wyjaśniono w temacie Microsoft Graph permissions (Uprawnienia programu Microsoft Graph). Usługi Azure SQL Database i Azure Synapse Analytics obsługują szczegółowe uprawnienia dotyczące grafów dla tych scenariuszy, natomiast usługa SQL Managed Instance wymaga roli Directory Readers. Szczegółowe uprawnienia i ich przypisanie opisano szczegółowo w temacie Włączanie jednostek usługi w celu tworzenia użytkowników firmy Microsoft Entra.
Rola czytelników katalogów
Strona Microsoft Entra ID dla usługi SQL Managed Instance w Azure Portal wyświetla wygodny baner, kiedy wystąpieniu nie są przypisane uprawnienia Directory Reader.
- Wybierz górny baner na stronie Microsoft Entra ID i przyznaj uprawnienie do tożsamości zarządzanej, przypisanej systemowo lub użytkownikowi, która reprezentuje Twoje wystąpienie. Tę operację może wykonać tylko administrator ról uprzywilejowanych lub wyższy w Twoim kliencie.
- Po pomyślnym zakończeniu operacji w prawym górnym rogu zostanie wyświetlone powiadomienie o powodzeniu:
Administrator Microsoft Entra może teraz tworzyć podmioty serwera Entra (loginy) i użytkowników bazy danych Entra. Aby uzyskać więcej informacji, zobacz Microsoft Entra integration with Azure SQL Managed Instance (Integracja z usługą Microsoft Entra z usługą Azure SQL Managed Instance).
Tworzenie podmiotów Entra firmy Microsoft w SQL Server
Aby nawiązać połączenie z bazą danych w usłudze SQL Database lub Azure Synapse Analytics z uwierzytelnianiem Microsoft Entra, główna tożsamość musi zostać skonfigurowana w bazie danych z co najmniej uprawnieniem CONNECT.
Uprawnienia użytkownika bazy danych
Po utworzeniu użytkownika bazy danych domyślnie otrzymuje uprawnienie CONNECT do bazy danych. Użytkownik bazy danych dziedziczy również uprawnienia w dwóch okolicznościach:
- Jeśli użytkownik jest członkiem grupy Microsoft Entra, która ma również przypisane uprawnienia na serwerze.
- Jeśli użytkownik jest tworzony na podstawie identyfikatora logowania, dziedziczy przypisane przez serwer uprawnienia logowania, które ma zastosowanie w bazie danych.
Zarządzanie uprawnieniami dla podmiotów zabezpieczeń serwera i bazy danych działa tak samo niezależnie od typu podmiotu zabezpieczeń (Identyfikator Entra firmy Microsoft, uwierzytelnianie SQL itp.). Zalecamy przyznanie uprawnień do ról bazy danych zamiast bezpośredniego udzielania uprawnień użytkownikom. Następnie użytkownicy mogą być dodawani do ról z odpowiednimi uprawnieniami. Upraszcza to długoterminowe zarządzanie uprawnieniami i zmniejsza prawdopodobieństwo, że tożsamość zachowa dostęp dłużej, niż jest to właściwe.
Aby uzyskać więcej informacji, zobacz:
- Uprawnienia silnika bazy danych i przykłady
- Blog: Podstawy uprawnień silnika bazy danych
- Zarządzanie specjalnymi rolami baz danych i identyfikatorami logowania w usłudze Azure SQL Database
Użytkownicy zawartej bazy danych
Użytkownik zawartej bazy danych jest typem użytkownika SQL, który nie jest połączony z logowaniem w bazie danych master. Aby utworzyć użytkownika zacisnionej bazy danych Microsoft Entra, połącz się z bazą danych przy użyciu tożsamości Microsoft Entra, która ma co najmniej uprawnienie ALTER ANY USER. Poniższy przykład języka T-SQL tworzy główny podmiot bazy danych Microsoft_Entra_principal_name z Microsoft Entra ID.
SQL
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [appName] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Użytkownicy logujący się
Uwaga / Notatka
Podmioty zabezpieczeń serwera Microsoft Entra (identyfikatory logowania) są obecnie dostępne w publicznej wersji zapoznawczej dla usług Azure SQL Database i Azure Synapse Analytics. Identyfikatory logowania entra firmy Microsoft są ogólnie dostępne dla usługi Azure SQL Managed Instance i programu SQL Server 2022.
Obsługiwane są zasady serwera Microsoft Entra (lub identyfikatory logowania), co oznacza, że użytkownicy zamkniętej bazy danych nie są wymagani. Jednostki bazy danych (użytkowników) można utworzyć w oparciu o zasadniczość serwera, co oznacza, że użytkownicy Microsoft Entra mogą dziedziczyć przypisane uprawnienia logowania na poziomie serwera.
SQL
CREATE USER [appName] FROM LOGIN [appName];
Aby uzyskać więcej informacji, zobacz Omówienie usługi SQL Managed Instance. Aby uzyskać informacje na temat tworzenia podmiotów zabezpieczeń serwera Microsoft Entra (identyfikatorów logowania), zobacz CREATE LOGIN.
Użytkownicy zewnętrzni
Nie można bezpośrednio utworzyć użytkownika bazy danych dla tożsamości zarządzanej w dzierżawie Microsoft Entra innej niż ta skojarzona z Twoją subskrypcją Azure. Jednak użytkowników w innych katalogach można importować do powiązanego katalogu jako użytkowników zewnętrznych. Następnie można ich użyć do utworzenia zawartych użytkowników bazy danych, którzy mogą uzyskiwać dostęp do bazy danych. 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 zawartej bazy danych reprezentującego użytkownika domeny federacyjnej lub zarządzanej firmy Microsoft:
SQL
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
Konto użytkownika domeny federacyjnej zaimportowane do domeny zarządzanej jako użytkownik zewnętrzny musi używać tożsamości domeny zarządzanej.
Zagadnienia dotyczące nazewnictwa
Znaki specjalne, takie jak dwukropek: lub ampersand &, jeśli są używane jako nazwy użytkowników w instrukcjach T-SQL CREATE LOGIN i CREATE USER, nie są obsługiwane.
Microsoft Entra ID i Azure SQL różnią się w projektowaniu zarządzania użytkownikami w kluczowy sposób: Microsoft Entra ID pozwala na duplikowanie nazw wyświetlanych w dzierżawie, podczas gdy Azure SQL wymaga, aby wszyscy użytkownicy serwera na serwerze albo instancji oraz wszyscy użytkownicy bazy danych mieli unikalną nazwę. Ponieważ usługa Azure SQL bezpośrednio używa nazwy wyświetlanej tożsamości w usłudze Microsoft Entra podczas tworzenia podmiotów, może to prowadzić do błędów przy dodawaniu użytkowników. Aby rozwiązać ten problem, usługa Azure SQL wydała ulepszenie WITH OBJECT_ID obecnie w wersji zapoznawczej, co umożliwia użytkownikom określenie identyfikatora obiektu Microsoft Entra tożsamości dodawanej do serwera lub instancji.
Uprawnienia programu Microsoft Graph
Polecenie CREATE USER ... FROM EXTERNAL PROVIDER wymaga dostępu usługi Azure SQL do Microsoft Entra ID (zewnętrznego dostawcy) w imieniu tego zalogowanego użytkownika. Czasami pojawiają się okoliczności, które powodują, że identyfikator Entra firmy Microsoft zwraca wyjątek do usługi Azure SQL.
- Może wystąpić błąd SQL 33134, który zawiera komunikat o błędzie specyficzny dla Microsoft Entra ID. Błąd zwykle wskazuje na odmowę dostępu, że użytkownik musi zarejestrować się w usłudze uwierzytelniania wieloskładnikowego (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. Aktualizowanie zasad dostępu warunkowego w celu zezwolenia na dostęp do aplikacji "00000003-0000-0000-c000-000000000000" (identyfikator aplikacji interfejsu API programu Microsoft Graph) powinno rozwiązać problem. Jeśli błąd wskazuje, że dostęp między aplikacjami pierwszej firmy musi być obsługiwany za pośrednictwem wstępnego uwierzytelniania, problem polega na tym, że użytkownik jest zalogowany jako jednostka usługi. Polecenie powinno zakończyć się powodzeniem, jeśli zostanie wykonane przez użytkownika.
- Jeśli zostanie wyświetlony komunikat "Timeout połączenia wygasł", może być konieczne ustawienie parametru TransparentNetworkIPResolution w łańcuchu połączenia na wartość false. Aby uzyskać więcej informacji, zobacz Problem z przekroczeniem limitu czasu połączenia z programem .NET Framework 4.6.1 — TransparentNetworkIPResolution.
Aby uzyskać więcej informacji na temat tworzenia zawartych użytkowników bazy danych na podstawie tożsamości firmy Microsoft Entra, zobacz CREATE USER (TWORZENIE UŻYTKOWNIKA).
Konfiguracja uwierzytelniania wieloskładnikowego
Aby zwiększyć bezpieczeństwo zasobu usługi Azure SQL, rozważ skonfigurowanie uwierzytelniania wieloskładnikowego (MFA), które monituje użytkownika o użycie drugiej alternatywnej metody uwierzytelniania w bazie danych, takiej jak połączenie telefoniczne lub aplikacja wystawcy uwierzytelnienia.
Aby użyć uwierzytelniania wieloskładnikowego z zasobem usługi Azure SQL, najpierw włącz uwierzytelnianie wieloskładnikowe, a następnie użyj zasad dostępu warunkowego , aby wymusić uwierzytelnianie wieloskładnikowe dla zasobu usługi Azure SQL.
Połącz się z Microsoft Entra
Po skonfigurowaniu uwierzytelniania Microsoft Entra, możesz użyć go do połączenia z zasobem SQL za pomocą narzędzi firmy Microsoft, takich jak SQL Server Management Studio i 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 w usłudze Microsoft Entra
Aby uzyskać wskazówki dotyczące rozwiązywania problemów, zobacz Blog: Rozwiązywanie problemów związanych z uwierzytelnianiem firmy Microsoft w usłudze Azure SQL Database i Azure Synapse.