Sdílet prostřednictvím


Ověřování Microsoft Entra ID a PostgreSQL pomocí služby Azure Cosmos DB for PostgreSQL

Důležité

Azure Cosmos DB for PostgreSQL se už pro nové projekty nepodporuje. Tuto službu nepoužívejte pro nové projekty. Místo toho použijte jednu z těchto dvou služeb:

  • Azure Cosmos DB for NoSQL můžete použít pro distribuované databázové řešení navržené pro vysoce škálovatelné scénáře s 99,999% smlouvou o úrovni služeb (SLA), okamžitým automatickým škálováním a automatickým převzetím služeb při selhání napříč několika oblastmi.

  • Použijte funkci Elastic Clusters služby Azure Database for PostgreSQL pro horizontálně dělené PostgreSQL pomocí opensourcového rozšíření Citus.

Azure Cosmos DB for PostgreSQL podporuje ověřování PostgreSQL a integraci s ID Microsoft Entra. Každý cluster Azure Cosmos DB for PostgreSQL se vytvoří s povoleným nativním ověřováním PostgreSQL a jednou integrovanou rolí PostgreSQL s názvem citus. Po dokončení zřizování clusteru můžete přidat další nativní role PostgreSQL.

Kromě metody ověřování PostgreSQL můžete také povolit ověřování Microsoft Entra ID (dříve Azure Active Directory) v clusteru nebo místo něj. Metody ověřování můžete nakonfigurovat v každém clusteru Azure Cosmos DB for PostgreSQL nezávisle. Pokud potřebujete změnit metodu ověřování, můžete to udělat kdykoli po dokončení zřizování clusteru. Změna metod ověřování nevyžaduje restartování clusteru.

Ověřování PostgreSQL

Modul PostgreSQL používá role k řízení přístupu k databázovým objektům. Nově vytvořený cluster Azure Cosmos DB for PostgreSQL má několik předdefinovaných rolí:

Vzhledem k tomu, že azure Cosmos DB for PostgreSQL je spravovaná služba PaaS, může se přihlásit jenom Microsoft pomocí postgres role superuživatele. Pro omezený přístup pro správu poskytuje Azure Cosmos DB for PostgreSQL roli citus.

Spravovaná služba musí replikovat všechny role PostgreSQL do všech uzlů v clusteru. Pro usnadnění tohoto požadavku je potřeba vytvořit všechny ostatní role PostgreSQL pomocí možností správy Azure Cosmos DB for PostgreSQL.

Role Citus

Oprávnění pro citus roli:

  • Přečtěte si všechny konfigurační proměnné, dokonce i proměnné, které jsou obvykle viditelné pouze superuživatelům.
  • Přečtěte si všechna zobrazení pg_stat_* a používejte různá rozšíření související se statistikami – včetně těch zobrazení nebo rozšíření, která bývají obvykle viditelná pouze pro superuživatele.
  • Vykonávejte monitorovací funkce, které mohou na delší dobu zabírat zámky typu ACCESS SHARE na tabulkách.
  • Vytvořte rozšíření PostgreSQL.

citus Role má zejména určitá omezení:

  • Nejde vytvořit role
  • Nejde vytvářet databáze

citus roli nelze odstranit, ale byla by deaktivována, pokud je v clusteru vybrána metoda ověřování 'pouze ověřování Microsoft Entra ID'.

Ověřování Microsoft Entra ID

Ověřování Microsoft Entra ID (dříve Azure Active Directory) je mechanismus připojení ke službě Azure Cosmos DB for PostgreSQL pomocí identit definovaných v Microsoft Entra ID. Pomocí ověřování Microsoft Entra ID můžete spravovat identity uživatelů databáze a další služby Microsoft v centrálním umístění, což zjednodušuje správu oprávnění.

Mezi výhody používání Microsoft Entra ID patří:

  • Jednotné ověřování uživatelů napříč službami Azure
  • Správa zásad hesel a obměně hesel na jednom místě
  • Více forem ověřování, které podporuje ID Microsoft Entra, což může eliminovat potřebu ukládat hesla
  • Ověřování pomocí Microsoft Entra ID využívá databázové role PostgreSQL k ověřování identit na úrovni databáze.
  • Podpora ověřování na základě tokenů pro aplikace připojující se ke službě Azure Cosmos DB for PostgreSQL

Spravujte přístup k PostgreSQL pro subjekty Microsoft Entra ID

Pokud je povoleno ověřování Microsoft Entra ID a Microsoft Entra ID je přidáno jako správce, získá účet stejná oprávnění jako rolecitus. Přihlašovacím účtem správce Microsoft Entra ID může být uživatel Microsoft Entra ID, instanční objekt nebo spravovaná identita. Kdykoli je možné nakonfigurovat více správců ID Microsoft Entra a volitelně můžete zakázat ověřování PostgreSQL (password) do clusteru Azure Cosmos DB for PostgreSQL, aby se zlepšilo auditování a dodržování předpisů.

Kromě toho je možné do clusteru kdykoli přidat libovolný počet nesprávcovských rolí Microsoft Entra ID, jakmile je povolena autentizace Microsoft Entra ID. Oprávnění databáze pro neadministrační role Microsoft Entra ID se spravují podobně jako běžné role.

Připojení pomocí identit MICROSOFT Entra ID

Ověřování MICROSOFT Entra ID podporuje následující metody připojení k databázi pomocí identit ID Microsoft Entra:

  • Microsoft Entra ID heslo
  • Integrované ID Microsoft Entra
  • Univerzální rozhraní Microsoft Entra ID s MFA
  • Použití certifikátů aplikace Microsoft Entra ID nebo tajných klíčů klienta
  • Spravovaná identita

Po ověření pomocí Microsoft Entra ID pak načtete token. Tento token je vaše heslo pro přihlášení.

Ostatní úvahy

  • Několik objektů zabezpečení Microsoft Entra ID (uživatel, instanční objekt nebo spravovaná identita) může být kdykoli nakonfigurováno jako správce Microsoft Entra ID pro cluster Azure Cosmos DB pro PostgreSQL.
  • Pokud je hlavní objekt Microsoft Entra ID odstraněn ze služby Microsoft Entra ID, zůstane v clusteru jako role PostgreSQL, ale už nebude schopný získat nový přístupový token. V tomto případě sice v databázi Postgres stále existuje odpovídající role, ale nemůže se ověřit v uzlech clusteru. Správci databází potřebují převést vlastnictví a tyto role ručně odstranit.

Poznámka:

Přihlášení s odstraněným uživatelem Microsoft Entra ID je stále možné provést až do vypršení platnosti tokenu (až 90 minut od vystavování tokenu). Pokud také odeberete uživatele z clusteru Azure Cosmos DB for PostgreSQL, bude tento přístup okamžitě odvolán.

  • Azure Cosmos DB for PostgreSQL přiřazuje přístupové tokeny k databázové roli s využitím jedinečného ID uživatele Microsoft Entra ID, a nikoli pomocí uživatelského jména. Pokud je uživatel Microsoft Entra ID odstraněn a je vytvořen nový uživatel se stejným jménem, Azure Cosmos DB for PostgreSQL to považuje za jiného uživatele. Proto pokud je uživatel odstraněn z Microsoft Entra ID a nový uživatel je přidán se stejným názvem, nový uživatel by se nemohl připojit k existující roli.

Další kroky