Поделиться через


Управление ролями Microsoft Entra в базе данных Azure для PostgreSQL - гибкий сервер

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — гибкий сервер

В этой статье описывается, как создать роли базы данных с поддержкой идентификатора Microsoft Entra в База данных Azure для PostgreSQL гибком экземпляре сервера.

Примечание.

В этом руководстве предполагается, что вы уже включили проверку подлинности Microsoft Entra на База данных Azure для PostgreSQL гибком экземпляре сервера. Узнайте , как настроить проверку подлинности Microsoft Entra

Если вы хотите узнать, как создавать пользователей подписки Azure и их привилегии и управлять ими, вы можете посетить статью управления доступом на основе ролей Azure (Azure RBAC) или узнать , как настроить роли.

Создание или удаление администраторов Microsoft Entra с помощью API портал Azure или Azure Resource Manager (ARM)

  1. Откройте страницу проверки подлинности для База данных Azure для PostgreSQL гибкого экземпляра сервера в портал Azure.
  2. Чтобы добавить администратора, выберите " Добавить администратора Microsoft Entra" и выберите пользователя, группу, приложение или управляемое удостоверение из текущего клиента Microsoft Entra.
  3. Чтобы удалить администратора, выберите значок "Удалить " для удаления.
  4. Нажмите кнопку "Сохранить " и дождитесь завершения операции подготовки.

Снимок экрана: управление администраторами Microsoft Entra с помощью портала.

Примечание.

Поддержка управления администраторами Microsoft Entra с помощью пакета SDK Azure, az cli и Azure PowerShell скоро ожидается.

Управление ролями Microsoft Entra с помощью SQL

После создания первого администратора Microsoft Entra из портал Azure или API можно использовать роль администратора для управления ролями Microsoft Entra в База данных Azure для PostgreSQL гибком экземпляре сервера.

Мы рекомендуем ознакомиться с платформа удостоверений Майкрософт для лучшего использования интеграции Microsoft Entra с База данных Azure для PostgreSQL гибким сервером.

Типы субъектов

База данных Azure для PostgreSQL гибкий сервер внутренне сохраняет сопоставление между ролями базы данных PostgreSQL и уникальными идентификаторами объектов AzureAD. Каждая роль базы данных PostgreSQL может быть сопоставлена с одним из следующих типов объектов Microsoft Entra:

  1. Пользователь — включая локальных и гостевых пользователей клиента.
  2. Субъект-служба. Включение приложений и управляемых удостоверений
  3. Группа, когда роль PostgreSQL связана с группой Microsoft Entra, любой пользователь или субъект-служба этой группы может подключиться к База данных Azure для PostgreSQL гибкому экземпляру сервера с ролью группы.

Вывод списка ролей Microsoft Entra с помощью SQL

pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Аргументы

isAdminValue

boolean при true возврате пользователей администратора. При falseвозврате всех пользователей Microsoft Entra, включая администраторов Microsoft Entra и неадминистраторов.

Возвращаемый тип

TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) таблица со следующей схемой:

  • rolname имя роли в PostgreSQL.
  • principalType тип субъекта в идентификаторе Microsoft Entra. Он может иметь значение user, group или service.
  • objectId идентификатор объекта в идентификаторе Microsoft Entra для этого субъекта.
  • tenantId идентификатор клиента, на котором размещен этот субъект, в идентификаторе Microsoft Entra.
  • isMfa возвращает значение, 1 если пользователь или роль применяет MFA.
  • isAdmin возвращает значение, 1 если пользователь или роль является администратором в PostgreSQL.

Создание пользователя или роли с помощью имени субъекта Microsoft Entra

pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

Аргументы

roleName

text имя создаваемой роли. Это должно соответствовать имени субъекта Microsoft Entra.

  • Для пользователей используется имя участника-пользователя из профиля. Для гостевых пользователей добавьте полное имя в свой домашний домен с тегом #EXT#.
  • Для групп и субъектов-служб используется отображаемое имя. Имя должно быть уникальным в клиенте.
isAdmin

boolean при true создании пользователя администратора PostgreSQL (член azure_pg_admin роли и с разрешениями CREATEROLE и CREATEB). При false создании обычного пользователя PostgreSQL.

isMfa

boolean при true применении многофакторной проверки подлинности для этого пользователя PostgreSQL.

Внимание

Флаг isMfa проверяет mfa утверждение в маркере идентификатора Microsoft Entra ID, но не влияет на поток приобретения маркеров. Например, если клиент субъекта не настроен для многофакторной проверки подлинности, он предотвратит использование функции. Если клиенту требуется многофакторная проверка подлинности для всех маркеров, он сделает этот флаг бесполезным.

Возвращаемый тип

textодно значение, состоящее из строки "Созданная роль для roleName", где roleName является аргументом, переданным для параметра roleName.

Удаление роли с помощью имени субъекта Microsoft Entra

Помните, что любая роль Microsoft Entra, созданная в PostgreSQL, должна быть удалена с помощью администратора Microsoft Entra. Если вы используете обычный администратор PostgreSQL для удаления роли Entra, это приведет к ошибке.

DROP ROLE rolename;

Создание роли с помощью идентификатора объекта Microsoft Entra

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

Аргументы

roleName

text имя создаваемой роли.

objectId

text уникальный идентификатор объекта Microsoft Entra.

  • Для пользователей, групп и управляемых удостоверений идентификатор objectId можно найти, выполнив поиск имени объекта на странице идентификатора Microsoft Entra ID в портал Azure. См. это руководство как пример
  • Для групп и субъектов-служб используется отображаемое имя. Имя должно быть уникальным в клиенте.
  • Для приложений необходимо использовать objectId соответствующего субъекта-службы . На портал Azure странице "Корпоративные приложения" портал Azure можно найти обязательный идентификатор объекта.
objectType

text Тип объекта Microsoft Entra для связи с этой ролью. Он может иметь значение user, group или service.

isAdmin

boolean при true создании пользователя администратора PostgreSQL (член azure_pg_admin роли и с разрешениями CREATEROLE и CREATEB). При false создании обычного пользователя PostgreSQL.

isMfa

boolean при true применении многофакторной проверки подлинности для этого пользователя PostgreSQL.

Внимание

Флаг isMfa проверяет mfa утверждение в маркере идентификатора Microsoft Entra ID, но не влияет на поток приобретения маркеров. Например, если клиент субъекта не настроен для многофакторной проверки подлинности, он предотвратит использование функции. Если клиенту требуется многофакторная проверка подлинности для всех маркеров, он сделает этот флаг бесполезным.

Возвращаемый тип

textодно значение, состоящее из строки "Созданная роль для roleName", где roleName является аргументом, переданным для параметра roleName.

Включение проверки подлинности Microsoft Entra для существующей роли PostgreSQL с помощью SQL

База данных Azure для PostgreSQL гибкий сервер использует метки безопасности, связанные с ролями базы данных, для хранения соответствующего сопоставления идентификатора Microsoft Entra.

Чтобы назначить необходимую метку безопасности для сопоставления ее с объектом Microsoft Entra, можно использовать следующий SQL:

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

Аргументы

roleName

text имя существующей роли PostgreSQL, для которой должна быть включена проверка подлинности Microsoft Entra.

objectId

text уникальный идентификатор объекта Microsoft Entra.

objectType

text для приложений или управляемых удостоверений, подключающихся под учетными данными службы, можно задать userзначение , groupили service (для приложений или управляемых удостоверений).

admin

text он может присутствовать или отсутствует. Пользователи и роли, для которых эта часть присутствует в метке безопасности, могут управлять другими ролями идентификатора Microsoft Entra.

Следующие шаги