Sdílet prostřednictvím


Používání ověřování Microsoft Entra ID s flexibilním serverem Azure Database for PostgreSQL

PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL

V tomto článku nakonfigurujete přístup Microsoft Entra ID pro ověřování pomocí flexibilního serveru Azure Database for PostgreSQL. Naučíte se také používat token Microsoft Entra s flexibilním serverem Azure Database for PostgreSQL.

Ověřování Microsoft Entra pro flexibilní server Azure Database for PostgreSQL můžete nakonfigurovat buď během zřizování serveru, nebo novějšího. Ověřování Microsoft Entra ID pro uživatele mohou vytvářet nebo povolovat pouze uživatelé s rolí správce Microsoft Entra. Nedoporučujeme používat 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).

Flexibilním serverem 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

Konfigurace požadavků na síť

Microsoft Entra ID je víceklientová aplikace. K provádění určitých operací vyžaduje odchozí připojení, jako je přidání skupin pro správu Microsoft Entra. Kromě toho potřebujete pravidla sítě pro připojení Microsoft Entra, aby fungovala v závislosti na topologii vaší sítě:

  • Veřejný přístup (povolené IP adresy):: Nevyžadují se žádná další síťová pravidla.

  • Privátní přístup (integrace virtuální sítě):

    • Potřebujete pravidlo odchozí skupiny zabezpečení sítě (NSG), které povolí provoz virtuální sítě jenom do značky AzureActiveDirectory služby.
    • Pokud používáte směrovací tabulku, musíte vytvořit pravidlo se značkou AzureActiveDirectory cílové služby a dalším segmentem směrování Internet.
    • Pokud používáte proxy server, můžete přidat nové pravidlo brány firewall, které povolí provoz HTTP/S, aby se dostal jenom na AzureActiveDirectory značku služby.
  • Vlastní DNS: Pokud ve virtuální síti používáte vlastní DNS, je potřeba vzít v úvahu další aspekty. V takových případech je důležité zajistit, aby se následující koncové body přeložily na jejich odpovídající IP adresy: login.microsoftonline.com: Tento koncový bod se používá pro účely ověřování. Ověřte, že vaše vlastní nastavení DNS umožňuje přeložit login.microsoftonline.com na správné IP adresy graph.microsoft.com: Tento koncový bod se používá pro přístup k rozhraní Microsoft Graph API. Ujistěte se, že vaše vlastní nastavení DNS umožňuje překlad graph.microsoft.com na správné IP adresy.

Pokud chcete správce Microsoft Entra nastavit během zřizování serveru, postupujte následovně:

  1. Během zřizování serveru na webu Azure Portal jako metodu ověřování vyberte buď Ověřování PostgreSQL a Microsoft Entra, nebo Pouze ověřování Microsoft Entra.
  2. 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 uživatele správce Azure. Po vytvoření serveru můžete přidat více uživatelů správce Microsoft Entra.

Snímek obrazovky znázorňující výběry pro nastavení správce Microsoft Entra během zřizování serveru.]

Chcete-li nastavit správce Microsoft Entra po vytvoření serveru, postupujte takto:

  1. Na webu Azure Portal vyberte instanci flexibilního serveru Azure Database for PostgreSQL, který chcete povolit pro Microsoft Entra ID.
  2. 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ů.
  3. 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.
  4. Zvolte Uložit.

Snímek obrazovky znázorňující výběry nastavení správce Microsoft Entra po vytvoření serveru

Důležité

Při nastavování správce se na flexibilní server 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

Následující diagram vysoké úrovně shrnuje pracovní postup použití ověřování Microsoft Entra se službou Azure Database for PostgreSQL:

Diagram toku ověřování mezi ID Microsoft Entra, počítačem uživatele a serverem

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. Jak je znázorněno v předchozím diagramu, token Microsoft Entra se předává jako heslo.

Otestovali jsme následující klienty:

  • příkazový řádek psql: Použijte PGPASSWORD promě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í Microsoft Entra ID

Pomocí následujících postupů se ověřte pomocí Microsoft Entra ID jako uživatel flexibilního serveru Azure Database for PostgreSQL. Postup můžete sledovat v Azure Cloud Shellu, na virtuálním počítači Azure nebo na místním počítači.

Přihlášení k předplatnému Azure uživatele

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ískejte 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í je nejlepší použít přístupový token jako heslo uživatele PostgreSQL.

Při použití klienta příkazového řádku psql musí být přístupový token předán prostřednictvím PGPASSWORD proměnné prostředí. Důvodem je, že přístupový token překračuje délku 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>

Pomocí nahrazení příkazů můžete také zkombinovat krok 2 a krok 3. Načtení tokenu lze zapouzdřovat do proměnné a předat ji přímo jako hodnotu proměnné PGPASSWORD prostředí:

export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)

Teď můžete zahájit připojení ke službě Azure Database for PostgreSQL, jak jste obvykle:

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:

  1. Otevřete nástroj Pgadmin a v nabídce vlevo klikněte na Zaregistrovat a vyberte Server.
  2. Na kartě Obecné zadejte název připojení a zrušte zaškrtnutí políčka Připojit .
  3. Klikněte na kartu Připojení a zadejte podrobnosti o instanci flexibilního serveru Azure Database for PostgreSQL pro název hostitele a adresu a uživatelské jméno a uložte ji. uživatelské jméno je vaše ID nebo e-mail Microsoft Entra
  4. V nabídce prohlížeče vyberte připojení flexibilního serveru Azure Database for PostgreSQL a klikněte na Připojit server.
  5. Po zobrazení výzvy zadejte heslo tokenu služby Active Directory.

Snímek obrazovky znázorňující proces přihlášení pomocí správce PG

Tady je několik důležitých aspektů při připojování:

  • user@tenant.onmicrosoft.com je 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é PGUGSER prostř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

Vytvoření skupin Microsoft Entra na flexibilním serveru Azure Database for PostgreSQL

Pokud chcete povolit přístup k databázi ve skupině Microsoft Entra, použijte stejný mechanismus, který jste použili pro uživatele, ale místo toho zadejte název skupiny. Příklad:

select * from  pgaadauth_create_principal('Prod DB Readonly', false, false).

Když se členové skupiny přihlásí, použijí přístupové tokeny, ale jako uživatelské jméno zadají název skupiny.

Poznámka:

Flexibilní server Azure Database for PostgreSQL podporuje spravované identity a instanční objekty jako členy skupiny.

Přihlášení k předplatnému Azure uživatele

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ískejte 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 je název skupiny Microsoft Entra, kterou se pokoušíte připojit.
  • Nezapomeňte použít přesný způsob, jakým je název skupiny Microsoft Entra napsaný. V názvech uživatelů a skupin Microsoft Entra se rozlišují malá a velká písmena.
  • Když se připojujete jako skupina, použijte jenom název skupiny, nikoli alias člena skupiny.
  • Pokud název obsahuje mezery, použijte před každým mezerou zpětné lomítko (\) a umistit ho.
  • Platnost přístupového tokenu je 5 minut až 60 minut. Před zahájením přihlášení ke službě Azure Database for PostgreSQL doporučujeme získat přístupový token.

Teď jste ověřeni na serveru PostgreSQL prostřednictvím ověřování Microsoft Entra.

Další kroky