Sdílet prostřednictvím


Správa rolí Microsoft Entra ve službě Azure Database for PostgreSQL

Tento článek popisuje, jak vytvořit databázové role s podporou Microsoft Entra ID na instanci flexibilního serveru Azure Database for PostgreSQL.

Další informace o vytváření a správě uživatelů předplatného Azure a jejich oprávnění najdete v článku Řízení přístupu na základě role (Azure RBAC) Azure nebo si přečtěte , jak přizpůsobit role.

Poznámka:

V této příručce se předpokládá, že jste už na instanci flexibilního serveru Azure Database for PostgreSQL povolili ověřování Microsoft Entra.

Vytvoření nebo odstranění správců Microsoft Entra pomocí webu Azure Portal nebo rozhraní API Azure Resource Manageru (ARM)

  1. Na webu Azure Portal otevřete stránku Ověřování pro instanci flexibilního serveru Azure Database for PostgreSQL.
  2. Pokud chcete přidat správce, vyberte Přidat správce Microsoft Entra a vyberte uživatele, skupinu, aplikaci nebo spravovanou identitu z aktuálního tenanta Microsoft Entra.
  3. Chcete-li odebrat správce, vyberte ikonu Odstranit pro správce, kterého chcete odebrat.
  4. Vyberte Uložit a počkejte na dokončení operace zřizování.

Poznámka:

Podpora pro správu Microsoft Entra Administrators prostřednictvím sady Azure SDK, az cli a Azure PowerShellu bude brzy k dispozici.

Správa rolí Microsoft Entra pomocí SQL

Po vytvoření prvního správce Microsoft Entra z webu Azure Portal nebo rozhraní API můžete pomocí role správce spravovat role Microsoft Entra ve vaší instanci flexibilního serveru Azure Database for PostgreSQL.

Pro co nejlepší prostředí s integrací Microsoft Entra ve službě Azure Database for PostgreSQL doporučujeme seznámit se s platformou Microsoft Identity Platform.

Typy objektů zabezpečení

Azure Database for PostgreSQL interně ukládá mapování mezi rolemi databáze PostgreSQL a jedinečnými identifikátory objektů Microsoft Entra. Každou roli databáze PostgreSQL lze mapovat na jeden z následujících typů objektů Microsoft Entra:

  • Uživatel – včetně místních tenantů a uživatelů typu host
  • Service Principal – včetně aplikací a spravovaných identit
  • Skupina – Pokud je role PostgreSQL propojená se skupinou Microsoft Entra, může se každý uživatel nebo instanční člen této skupiny připojit k instanci flexibilního serveru Azure Database for PostgreSQL s rolí skupiny.

Výpis rolí Microsoft Entra pomocí SQL

select * from pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Arguments

isAdminValue

boolean - Když true, vrátí uživatele s oprávněním správce. Když falsevrátí všechny uživatele Microsoft Entra, včetně správců Microsoft Entra a nesprávců.

Návratový typ

TABLE(rolename name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) – Tabulka s následujícím schématem:

  • rolename – Název role v PostgreSQL.
  • principalType – Typ objektu zabezpečení v MICROSOFT Entra ID. Může to být user, groupnebo service.
  • objectId - Identifikátor objektu v Microsoft Entra ID pro tuto entitu.
  • tenantId – Identifikátor tenanta, který hostuje tuto entitu v ID Microsoft Entra.
  • isMfa – Vrátí hodnotu 1 , pokud má uživatel nebo role vynucené vícefaktorové ověřování.
  • isAdmin – Vrátí hodnotu, 1 pokud je uživatel nebo role správcem v PostgreSQL.

Vytvoření uživatele nebo role s hlavním názvem Microsoft Entra

select * from pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

Arguments

roleName

text název role, která se má vytvořit. Tento název musí odpovídat názvu identity Microsoft Entra.

  • Pro uživatele použijte hlavní název uživatele z profilu. Pro uživatele typu host zahrňte celé jméno do domovské domény se značkou #EXT#.
  • Pro skupiny a instanční objekty použijte zobrazovaný název. Název musí být v tenantovi jedinečný.
isAdmin

boolean když truevytvoří uživatele správce PostgreSQL (člen azure_pg_admin role a s oprávněními CREATEROLE a CREATEDB). Když falsevytvoříte běžného uživatele PostgreSQL.

isMfa

boolean when true, vynucuje vícefaktorové ověřování pro tohoto uživatele PostgreSQL.

Důležité

Příznak isMfa testuje mfa deklaraci identity v tokenu Microsoft Entra ID, ale nemá vliv na tok získání tokenu. Pokud například hlavní tenant není nakonfigurovaný pro vícefaktorové ověřování, znemožňuje to použití této funkce. A pokud tenant vyžaduje vícefaktorové ověřování pro všechny tokeny, znamená to, že tento příznak je zbytečný.

Návratový typ

text Jedna hodnota, která se skládá z řetězce "Vytvořená role pro roleName", kde roleName je argument, který předáte pro parametr roleName .

Vyřazení role s hlavním názvem Microsoft Entra

Roli, která odpovídá hlavnímu objektu ID Microsoft Entra, můžete odstranit třemi způsoby:

  • Portál Azure

  • Rozhraní API Azure Resource Manageru (ARM)

  • Spuštěním následujícího příkazu SQL:

    DROP ROLE rolename;
    

Poznámka:

Na webu Azure Portal se zobrazují jenom role správců. Pokud chcete odstranit roli bez oprávnění správce, použijte buď rozhraní API Azure Resource Manageru (ARM), nebo příkaz SQL.

Vytvoření role pomocí identifikátoru objektu Microsoft Entra ID

select * from pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)

Arguments

roleName

text název role, která se má vytvořit.

objectId

text jedinečný identifikátor objektu Microsoft Entra.

  • Pro uživatele, skupiny a spravované identity vyhledejte objectId název objektu na stránce Microsoft Entra ID na webu Azure Portal. Podívejte se na tuto příručku jako příklad.
  • Pro skupiny a instanční objekty použijte zobrazovaný název. Název musí být v tenantovi jedinečný.
  • Pro aplikace použijte objectId odpovídajícího Service Principalu. Na webu Azure Portal vyhledejte požadované ID objektu na stránce Podnikové aplikace .
objectType

text Typ objektu Microsoft Entra, který se má propojit s touto rolí. Může to být user, groupnebo service.

isAdmin

boolean když truevytvoří uživatele správce PostgreSQL (člen azure_pg_admin role a s oprávněními CREATEROLE a CREATEDB). Když falsevytvoříte běžného uživatele PostgreSQL.

isMfa

boolean when true, vynucuje vícefaktorové ověřování pro tohoto uživatele PostgreSQL.

Důležité

Příznak isMfa testuje mfa deklaraci identity v tokenu Microsoft Entra ID, ale nemá vliv na tok získání tokenu. Pokud například hlavní tenant není nakonfigurovaný pro vícefaktorové ověřování, znemožňuje to použití této funkce. A pokud tenant vyžaduje vícefaktorové ověřování pro všechny tokeny, znamená to, že tento příznak je zbytečný.

Návratový typ

text Jedna hodnota, která se skládá z řetězce "Vytvořená role pro roleName", kde roleName je argument, který předáte pro parametr roleName .

Povolení ověřování Microsoft Entra pro existující roli PostgreSQL pomocí SQL

Azure Database for PostgreSQL používá bezpečnostní štítky spojené s databázovými rolemi k uchovávání odpovídajícího mapování Microsoft Entra ID.

Pomocí následujícího příkazu SQL přiřaďte požadovaný popisek zabezpečení a namapujte ho na objekt Microsoft Entra:

SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';

Arguments

roleName

text název existující role PostgreSQL pro povolení ověřování Microsoft Entra.

objectId

text jedinečný identifikátor objektu Microsoft Entra.

objectType

text nastaveno na hodnotu user, group nebo service (pro aplikace nebo spravované identity, které se připojují pod svými vlastními přihlašovacími údaji služby).

admin

text nastavena na hodnotu „přítomna“ nebo „nepřítomna“. Pokud je přítomný ve štítku zabezpečení, uživatelé nebo role mohou spravovat jiné role Microsoft Entra ID.