Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule skonfigurujesz dostęp do identyfikatora entra firmy Microsoft na potrzeby uwierzytelniania za pomocą usługi Azure Database for PostgreSQL. Dowiesz się również, jak używać tokenu Entra firmy Microsoft z elastycznym wystąpieniem serwera usługi Azure Database for PostgreSQL.
Można skonfigurować uwierzytelnianie Microsoft Entra dla wystąpienia elastycznego serwera usługi Azure Database for PostgreSQL podczas aprowizacji serwera albo później. Tylko użytkownicy administratora firmy Microsoft Entra mogą tworzyć lub włączać użytkowników na potrzeby uwierzytelniania opartego na identyfikatorze Entra firmy Microsoft. Nie używaj administratora firmy Microsoft Entra do wykonywania zwykłych operacji bazy danych, ponieważ ta rola ma podwyższony poziom uprawnień użytkownika (na przykład CREATEDB).
W usłudze Azure Database for PostgreSQL możesz mieć wielu użytkowników administracyjnych firmy Microsoft Entra. Administrator firmy Microsoft Entra może być użytkownikiem, grupą lub jednostką usługi.
Wymagania wstępne
- Potrzebujesz konta platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Konfigurowanie wymagań dotyczących sieci
Microsoft Entra ID to wielodostępna aplikacja. Wymaga ona łączności wychodzącej dla operacji, takich jak dodawanie grup administratorów firmy Microsoft Entra.
Wymagania dotyczące sieci różnią się w zależności od topologii:
- Dostęp publiczny (dozwolone adresy IP): nie są wymagane żadne dodatkowe reguły ruchu wychodzącego.
-
Dostęp prywatny (integracja z siecią wirtualną):
- Dodaj regułę sieciowej grupy zabezpieczeń (NSG) dla ruchu wychodzącego, która umożliwia ruch wyłącznie do tagu
AzureActiveDirectoryusługi. - Jeśli używasz tabeli tras, dodaj trasę z celem
AzureActiveDirectoryi następną przesiadkąInternet. - Jeśli używasz serwera proxy, zezwalaj tylko na ruch HTTPS do tagu
AzureActiveDirectoryusługi.
- Dodaj regułę sieciowej grupy zabezpieczeń (NSG) dla ruchu wychodzącego, która umożliwia ruch wyłącznie do tagu
-
Niestandardowy system DNS:
- Upewnij się, że te nazwy hostów są rozpoznawane publicznie:
login.microsoftonline.com(uwierzytelnianie) igraph.microsoft.com(interfejs API programu Microsoft Graph). - Jeśli rozwiązanie zakończy się niepowodzeniem, operacja przypisania administratora i pozyskiwania tokenu zakończy się niepowodzeniem.
- Upewnij się, że te nazwy hostów są rozpoznawane publicznie:
Aby ustawić administratora firmy Microsoft Entra podczas aprowizacji serwera, wykonaj następujące kroki:
- W witrynie Azure Portal podczas aprowizacji serwera wybierz pozycję PostgreSQL i Microsoft Entra authentication lub Microsoft Entra authentication tylko jako metodę uwierzytelniania.
- Na karcie Ustawianie administratora wybierz prawidłowego użytkownika microsoft Entra, grupy, jednostki usługi lub tożsamości zarządzanej w dzierżawie klienta, aby być administratorem firmy Microsoft Entra.
Opcjonalnie możesz dodać lokalne konto administratora postgreSQL, jeśli wolisz użyć metody uwierzytelniania PostgreSQL i Microsoft Entra .
Uwaga / Notatka
Podczas aprowizacji serwera można dodać tylko jednego administratora firmy Microsoft Entra. Po utworzeniu serwera można dodać wielu użytkowników administratora firmy Microsoft Entra.
Aby ustawić administratora firmy Microsoft Entra po utworzeniu serwera, wykonaj następujące kroki:
- W witrynie Azure Portal wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL, które chcesz włączyć dla identyfikatora Entra firmy Microsoft.
- W obszarze Zabezpieczenia wybierz pozycję Uwierzytelnianie. Następnie wybierz uwierzytelnianie PostgreSQL i Microsoft Entra lub uwierzytelnianie Microsoft Entra tylko jako metodę uwierzytelniania na podstawie Twoich wymagań.
- Wybierz pozycję Dodaj administratorów firmy Microsoft Entra. Następnie wybierz prawidłowego użytkownika, grupy, jednostki usługi lub tożsamości zarządzanej firmy Microsoft w dzierżawie klienta, aby być administratorem firmy Microsoft Entra.
- Wybierz Zapisz.
Ważne
Podczas ustawiania administratora do wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL zostanie dodany nowy użytkownik z pełnymi uprawnieniami administracyjnymi.
Nawiązywanie połączenia z usługą Azure Database for PostgreSQL przy użyciu identyfikatora Entra firmy Microsoft
Integracja z firmą Microsoft Entra współpracuje ze standardowymi narzędziami PostgreSQL, takimi jak psql, które nie są świadome firmy Microsoft i obsługują tylko określanie nazwy użytkownika i hasła podczas nawiązywania połączenia z bazą danych PostgreSQL.
Przetestowaliśmy następujących klientów:
-
Wiersz polecenia psql: użyj zmiennej
PGPASSWORD, aby przekazać token. - Azure Data Studio: użyj rozszerzenia PostgreSQL.
- Inni klienci oparty na libpq: Przykłady obejmują typowe struktury aplikacji i maperów relacyjnych obiektów (ORM).
- PgAdmin: Wyczyść połączenie teraz podczas tworzenia serwera.
Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft
Poniższe procedury służą do uwierzytelniania za pomocą identyfikatora Entra firmy Microsoft jako użytkownika wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL.
Możesz śledzić, korzystając z:
- Azure Cloud Shell
- Maszyna wirtualna platformy Azure
- Maszyna lokalna
Zaloguj się do Azure
Zacznij od uwierzytelnienia przy użyciu identyfikatora Entra firmy Microsoft przy użyciu interfejsu wiersza polecenia platformy Azure. Ten krok nie jest wymagany w usłudze Azure Cloud Shell.
az login
Polecenie otwiera okno przeglądarki na stronie uwierzytelniania Microsoft Entra. Wymaga to podania identyfikatora użytkownika i hasła firmy Microsoft Entra.
Pobierz token dostępu Microsoft Entra
Użyj interfejsu wiersza polecenia platformy Azure, aby uzyskać token dostępu dla uwierzytelnionego użytkownika firmy Microsoft w celu uzyskania dostępu do usługi Azure Database for PostgreSQL. Oto przykład chmury publicznej:
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
Poprzednia wartość zasobu musi być określona, jak pokazano. W przypadku innych chmur można wyszukać wartość zasobu przy użyciu następującego polecenia:
az cloud show
W przypadku interfejsu wiersza polecenia platformy Azure w wersji 2.0.71 lub nowszej można określić polecenie w następującej wygodnej wersji dla wszystkich chmur:
az account get-access-token --resource-type oss-rdbms
Po pomyślnym uwierzytelnieniu identyfikator Entra firmy Microsoft zwraca token dostępu:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Token jest ciągiem Base64. Koduje wszystkie informacje o uwierzytelnianych użytkownikach i jest przeznaczony dla usługi Azure Database for PostgreSQL.
Używanie tokenu jako hasła do logowania się za pomocą narzędzia psql klienta
Podczas nawiązywania połączenia użyj tokenu dostępu jako hasła użytkownika postgreSQL.
W przypadku korzystania z klienta wiersza polecenia psql należy przekazać token dostępu za pośrednictwem zmiennej środowiskowej PGPASSWORD . Token dostępu jest dłuższy niż długość hasła, którą narzędzie psql może zaakceptować bezpośrednio.
Oto przykład systemu Windows:
set PGPASSWORD=<copy/pasted TOKEN value from step 2>
$env:PGPASSWORD='<copy/pasted TOKEN value from step 2>'
Oto przykład systemu Linux lub macOS:
export PGPASSWORD=<copy/pasted TOKEN value from step 2>
Możesz również połączyć krok 2 i krok 3 ze sobą przy użyciu podstawienia poleceń. Pobieranie tokenu można umieścić w zmiennej i przekazać je bezpośrednio jako wartość zmiennej środowiskowej PGPASSWORD :
export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)
Teraz połącz się z usługą Azure Database for PostgreSQL:
psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"
Używanie tokenu jako hasła do logowania przy użyciu narzędzia PgAdmin
Aby nawiązać połączenie przy użyciu tokenu entra firmy Microsoft za pomocą narzędzia PgAdmin, wykonaj następujące kroki:
- Otwórz aplikację PgAdmin i wybierz opcję Zarejestruj>serwer.
- Na karcie Ogólne wprowadź nazwę połączenia i wyczyść pole Połącz teraz.
- Na karcie Połączenie wprowadź szczegóły hosta. Ustaw nazwę użytkownika na nazwę UPN firmy Microsoft (na przykład
user@tenant.onmicrosoft.com). Zapisać. - W drzewie wybierz serwer i wybierz pozycję Połącz serwer.
- Po wyświetleniu monitu wklej token dostępu jako hasło.
Poniżej przedstawiono kilka podstawowych zagadnień dotyczących nawiązywania połączenia:
user@tenant.onmicrosoft.comto userPrincipalName użytkownika Microsoft Entra.Pamiętaj, aby użyć dokładnego sposobu pisowni użytkownika platformy Azure. W nazwach użytkowników i grup firmy Microsoft uwzględniana jest wielkość liter.
Jeśli nazwa zawiera spacje, użyj ukośnika odwrotnego (
\) przed każdą spacją, aby ją uniknąć. Możesz użyć interfejsu wiersza polecenia platformy Azure, aby pobrać zalogowanego użytkownika i ustawić wartośćPGUSERzmiennej środowiskowej:export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')Ważność tokenu dostępu wynosi od 5 minut do 60 minut. Przed zainicjowaniem logowania do usługi Azure Database for PostgreSQL należy uzyskać token dostępu.
Teraz uwierzytelniasz się na serwerze usługi Azure Database for PostgreSQL za pomocą uwierzytelniania firmy Microsoft Entra.
Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft jako członka grupy
W tej sekcji pokazano, jak nawiązać połączenie przy użyciu grupy Microsoft Entra. Musisz być członkiem grupy, a grupa musi zostać utworzona (zamapowana) w bazie danych.
Utwórz zasadę grupy
Utwórz jednostkę grupy (rolę) w bazie danych (zastąp nazwę wyświetlaną zgodnie z potrzebami):
select * from pgaadauth_create_principal('Prod DB Readonly', false, false).
Jeśli synchronizacja grup jest wyłączona, członkowie mogą się zalogować przy użyciu tokenów dostępu i określić nazwę grupy jako nazwę użytkownika.
Jeśli synchronizacja grupowa jest włączona (za pośrednictwem parametru serwera pgaadauth.enable_group_sync ustawionego na "WŁ."), członkowie powinni zalogować się przy użyciu swoich indywidualnych poświadczeń Entra ID, ale mogą również zalogować się z wykorzystaniem nazwy grupy jako nazwy użytkownika.
Logowanie grupowe pozostaje dostępne ze względów zgodności, ale można je wyłączyć za pomocą:
ALTER ROLE "ROLE_NAME" NOLOGIN;Aby zachować synchronizację, nie należy usuwać roli grupy.
Automatyczne synchronizowanie grup co 30 minut.
Synchronizacja ręczna może być wyzwalana za pomocą polecenia:
SELECT * FROM pgaadauth_sync_roles_for_group_members();(pgaadauth.enable_group_syncparametr musi mieć wartość "WŁĄCZONE").Zmiany metadanych grupy, takie jak nazwa grupy, nie są synchronizowane
Zmiany członkostwa w grupach są synchronizowane
Uwaga / Notatka
Tożsamości zarządzane i podmioty usługi są obsługiwane jako członkowie grupy.
Zaloguj się do Azure
Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft przy użyciu interfejsu wiersza polecenia platformy Azure. Ten krok nie jest wymagany w usłudze Azure Cloud Shell. Użytkownik musi być członkiem grupy Microsoft Entra.
az login
Pobierz token dostępu Microsoft Entra
Użyj interfejsu wiersza polecenia platformy Azure, aby uzyskać token dostępu dla uwierzytelnionego użytkownika firmy Microsoft w celu uzyskania dostępu do usługi Azure Database for PostgreSQL. Oto przykład chmury publicznej:
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
Musisz określić początkową wartość zasobu dokładnie tak, jak pokazano. W przypadku innych chmur można wyszukać wartość zasobu przy użyciu następującego polecenia:
az cloud show
W przypadku interfejsu wiersza polecenia platformy Azure w wersji 2.0.71 lub nowszej można określić polecenie w następującej wygodnej wersji dla wszystkich chmur:
az account get-access-token --resource-type oss-rdbms
Po pomyślnym uwierzytelnieniu identyfikator Entra firmy Microsoft zwraca token dostępu:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Używanie tokenu jako hasła do logowania przy użyciu narzędzia psql lub PgAdmin
Te zagadnienia są istotne podczas nawiązywania połączenia jako członek grupy:
- Nazwa grupy musi być dokładnie zgodna z nazwą wyświetlaną grupy Entra firmy Microsoft (z uwzględnieniem wielkości liter).
- Użyj tylko nazwy grupy, a nie aliasu członka.
- Spacje ucieczki tam, gdzie jest to wymagane (na przykład
Prod\ DB\ Readonly). - Ważność tokenu wynosi 5–60 minut. Uzyskaj go tuż przed nawiązaniem połączenia; nie przechowuj tokenów w skryptach.
Wskazówka
Jeśli uwierzytelnianie nie powiedzie się, sprawdź, czy rola bazy danych istnieje (np. za pomocą \du) i potwierdź ustawienie pgaadauth.enable_group_sync.
Teraz uwierzytelniasz się na serwerze PostgreSQL za pomocą uwierzytelniania firmy Microsoft Entra.