Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku nakonfigurujete přístup Microsoft Entra ID pro ověřování pomocí Služby Azure Database for PostgreSQL. Dozvíte se také, jak používat token Microsoft Entra s instancí flexibilního serveru Azure Database for PostgreSQL.
Ověřování Microsoft Entra pro instanci flexibilního serveru Azure Database for PostgreSQL můžete nakonfigurovat buď během zřizování serveru, nebo později. Pouze uživatelé microsoft Entra mohou vytvářet nebo povolovat uživatele pro ověřování založené na ID Microsoft Entra. Nepoužívejte správce Microsoft Entra pro běžné databázové operace, protože tato role má zvýšená uživatelská oprávnění (například CREATEDB).
Ve službě Azure Database for PostgreSQL můžete mít více uživatelů správce Microsoft Entra. Uživatelé správce Microsoft Entra můžou být uživatelem, skupinou nebo instančním objektem.
Požadavky
- Potřebujete účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
Konfigurace požadavků na síť
Microsoft Entra ID je víceklientová aplikace. Potřebuje odchozí připojení pro operace, jako je přidání skupin pro správu Microsoft Entra.
Požadavky na sítě se liší podle topologie:
- Veřejný přístup (povolené IP adresy):: Nevyžadují se žádná další odchozí pravidla.
-
Privátní přístup (integrace virtuální sítě):
- Přidejte odchozí pravidlo NSG, které povoluje provoz pouze do servisního tagu
AzureActiveDirectory. - Pokud používáte směrovací tabulku, přidejte trasu s cílem
AzureActiveDirectorya dalším skokemInternet. - Pokud používáte proxy server, povolte pouze provoz HTTPS na
AzureActiveDirectoryznačku služby.
- Přidejte odchozí pravidlo NSG, které povoluje provoz pouze do servisního tagu
-
Vlastní DNS:
- Ujistěte se, že jsou tyto názvy hostitelů veřejně dostupné:
login.microsoftonline.com(ověřování) agraph.microsoft.com(Microsoft Graph API). - Pokud se řešení nezdaří, operace přiřazení správce a získání tokenů selžou.
- Ujistěte se, že jsou tyto názvy hostitelů veřejně dostupné:
Pokud chcete nastavit správce Microsoft Entra během zřizování serveru, postupujte takto:
- Na webu Azure Portal během zřizování serveru vyberte buď ověřování PostgreSQL a Microsoft Entra , nebo ověřování Microsoft Entra pouze jako metodu ověřování.
- Na kartě Nastavit správce vyberte platného uživatele Microsoft Entra, skupiny, instančního objektu nebo spravované identity v tenantovi zákazníka, aby byl správcem Microsoft Entra.
Pokud chcete použít metodu ověřování PostgreSQL a Microsoft Entra , můžete volitelně přidat místní účet správce PostgreSQL.
Poznámka:
Během zřizování serveru můžete přidat pouze jednoho správce Microsoft Entra. Po vytvoření serveru můžete přidat více uživatelů správce Microsoft Entra.
Chcete-li nastavit správce Microsoft Entra po vytvoření serveru, postupujte takto:
- Na webu Azure Portal vyberte instanci flexibilního serveru Azure Database for PostgreSQL, který chcete povolit pro Microsoft Entra ID.
- V části Zabezpečení vyberte Ověřování. Pak zvolte buď ověřování PostgreSQL a Microsoft Entra , nebo ověřování Microsoft Entra pouze jako metodu ověřování na základě vašich požadavků.
- Vyberte Přidat správce Microsoft Entra. Pak vyberte platného uživatele Microsoft Entra, skupinu, instanční objekt nebo spravovanou identitu v tenantovi zákazníka, aby byl správcem Microsoft Entra.
- Vyberte Uložit.
Důležité
Při nastavování správce se do instance flexibilního serveru Azure Database for PostgreSQL přidá nový uživatel s úplnými oprávněními správce.
Připojení ke službě Azure Database for PostgreSQL pomocí ID Microsoft Entra
Integrace Microsoft Entra funguje se standardními nástroji PostgreSQL, jako je psql, které microsoft Entra nezná a podporuje pouze zadávání uživatelského jména a hesla při připojování k PostgreSQL.
Otestovali jsme následující klienty:
-
příkazový řádek psql: Použijte
PGPASSWORDproměnnou k předání tokenu. - Azure Data Studio: Použijte rozšíření PostgreSQL.
- Další klienti založené na knihovně libpq: Příklady zahrnují běžné aplikační architektury a mapovače relačních objektů (ORM).
- PgAdmin: Zrušte zaškrtnutí políčka Připojit při vytváření serveru.
Ověřování pomocí ID Microsoft Entra
Pomocí následujících postupů se ověřte pomocí Microsoft Entra ID jako uživatel instance flexibilního serveru Azure Database for PostgreSQL.
Můžete postupovat podle následujících pokynů:
- Azure Cloud Shell
- Virtuální počítač Azure
- Místní počítač
Přihlásit se do Azure
Začněte ověřováním pomocí Microsoft Entra ID pomocí Azure CLI. Tento krok se v Azure Cloud Shellu nevyžaduje.
az login
Příkaz otevře okno prohlížeče na stránku ověřování Microsoft Entra. Vyžaduje, abyste zadali své UŽIVATELSKÉ ID a heslo Microsoft Entra.
Načtení přístupového tokenu Microsoft Entra
Pomocí Azure CLI získáte přístupový token pro ověřeného uživatele Microsoft Entra pro přístup ke službě Azure Database for PostgreSQL. Tady je příklad veřejného cloudu:
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
Předchozí hodnota prostředku musí být zadána, jak je znázorněno. V případě jiných cloudů můžete hodnotu prostředku vyhledat pomocí následujícího příkazu:
az cloud show
Pro Azure CLI verze 2.0.71 a novější můžete zadat příkaz v následující pohodlné verzi pro všechny cloudy:
az account get-access-token --resource-type oss-rdbms
Po úspěšném ověření vrátí ID Microsoft Entra přístupový token:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Token je řetězec Base64. Zakóduje všechny informace o ověřeném uživateli a cílí na službu Azure Database for PostgreSQL.
Použití tokenu jako hesla pro přihlášení pomocí klientského psql
Při připojování použijte přístupový token jako heslo uživatele PostgreSQL.
Pokud používáte klient psql pro příkazový řádek, je potřeba předat přístupový token pomocí proměnné prostředí PGPASSWORD. Přístupový token je delší než délka hesla, kterou psql může přijmout přímo.
Tady je příklad Windows:
set PGPASSWORD=<copy/pasted TOKEN value from step 2>
$env:PGPASSWORD='<copy/pasted TOKEN value from step 2>'
Tady je příklad Linuxu nebo macOS:
export PGPASSWORD=<copy/pasted TOKEN value from step 2>
Ke sloučení kroku 2 a kroku 3 můžete použít také nahrazení příkazů. Načtení tokenu můžete uložit do proměnné a přímo jej předat jako hodnotu proměnné prostředí PGPASSWORD.
export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)
Teď se připojte ke službě Azure Database for PostgreSQL:
psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"
Použití tokenu jako hesla pro přihlášení pomocí nástroje PgAdmin
Pokud se chcete připojit pomocí tokenu Microsoft Entra s nástrojem PgAdmin, postupujte takto:
- Otevřete PgAdmin a vyberte Registrovat>server.
- Na kartě Obecné zadejte název připojení a zrušte zaškrtnutí políčka Připojit nyní.
- Na kartě Připojení zadejte podrobnosti o hostiteli. Nastavte uživatelské jméno na Microsoft Entra uživatelské hlavní jméno (UPN) (například
user@tenant.onmicrosoft.com). Uložení - Ve stromu vyberte server a zvolte Připojit server.
- Po zobrazení výzvy vložte přístupový token jako heslo.
Tady je několik důležitých aspektů při připojování:
user@tenant.onmicrosoft.comje userPrincipalName uživatele Microsoft Entra.Nezapomeňte použít přesný způsob, jakým je uživatel Azure napsaný. V názvech uživatelů a skupin Microsoft Entra se rozlišují malá a velká písmena.
Pokud název obsahuje mezery, použijte před každým mezerou zpětné lomítko (
\) a umistit ho. Pomocí Azure CLI můžete získat přihlášeného uživatele a nastavit hodnotu proměnnéPGUSERprostředí:export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')Platnost přístupového tokenu je 5 minut až 60 minut. Než zahájíte přihlášení ke službě Azure Database for PostgreSQL, měli byste získat přístupový token.
Teď jste ověřeni na serveru Azure Database for PostgreSQL prostřednictvím ověřování Microsoft Entra.
Ověřování pomocí ID Microsoft Entra jako člena skupiny
Tato část ukazuje, jak se připojit pomocí skupiny Microsoft Entra. Musíte být členem skupiny a skupina musí být vytvořena (namapována) v databázi.
Vytvoření skupinové identity
Vytvořte hlavní entitu skupiny (roli) v databázi (podle potřeby nahraďte zobrazovaný název):
select * from pgaadauth_create_principal('Prod DB Readonly', false, false).
Pokud je synchronizace skupiny zakázaná, můžou se členové přihlásit pomocí přístupových tokenů a zadat název skupiny jako uživatelské jméno.
Pokud je povolená synchronizace skupiny (prostřednictvím parametru serveru pgaadauth.enable_group_sync nastaveným na zapnuto), členové by se měli přihlásit pomocí svých individuálních přihlašovacích údajů Entra ID, ale přesto se můžou přihlásit pod názvem skupiny jako uživatelské jméno.
Přihlášení skupin zůstávají dostupná z důvodů kompatibility, ale můžou být zakázaná s:
ALTER ROLE "ROLE_NAME" NOLOGIN;Aby se zachovala synchronizace, neměla by být role skupiny odstraněna.
Skupiny se automaticky synchronizují každých 30 minut.
Ruční synchronizaci je možné aktivovat pomocí:
SELECT * FROM pgaadauth_sync_roles_for_group_members();(pgaadauth.enable_group_syncparametr musí být zapnutý).Změny metadat skupiny, jako je název skupiny, se nesynchronizují
Změny členství ve skupinách se synchronizují.
Poznámka:
Spravované identity a služební principály jsou podporovány jako členové skupiny.
Přihlásit se do Azure
Ověřování pomocí Microsoft Entra ID pomocí Azure CLI Tento krok se v Azure Cloud Shellu nevyžaduje. Uživatel musí být členem skupiny Microsoft Entra.
az login
Načtení přístupového tokenu Microsoft Entra
Pomocí Azure CLI získáte přístupový token pro ověřeného uživatele Microsoft Entra pro přístup ke službě Azure Database for PostgreSQL. Tady je příklad veřejného cloudu:
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
Musíte zadat počáteční hodnotu prostředku přesně tak, jak je znázorněno. V případě jiných cloudů můžete hodnotu prostředku vyhledat pomocí následujícího příkazu:
az cloud show
Pro Azure CLI verze 2.0.71 a novější můžete zadat příkaz v následující pohodlné verzi pro všechny cloudy:
az account get-access-token --resource-type oss-rdbms
Po úspěšném ověření vrátí ID Microsoft Entra přístupový token:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Použití tokenu jako hesla pro přihlášení pomocí psql nebo PgAdmin
Při připojování jako člena skupiny jsou důležité tyto aspekty:
- Název skupiny musí přesně odpovídat zobrazovanému názvu skupiny v Microsoft Entra (rozlišují se malá a velká písmena).
- Použijte jenom název skupiny, nikoli alias člena.
- Escapovat mezery tam,
Prod\ DB\ Readonlykde je to potřeba (například). - Platnost tokenu je 5–60 minut. Získat jej těsně před připojením; neukládejte tokeny ve skriptech.
Návod
Pokud ověřování selže, zkontrolujte, že databázová role existuje (například pomocí \du) a ověřte nastavení pgaadauth.enable_group_sync.
Teď jste ověřeni na serveru PostgreSQL prostřednictvím ověřování Microsoft Entra.