Управление ролями 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)
- Откройте страницу проверки подлинности для База данных Azure для PostgreSQL гибкого экземпляра сервера в портал Azure.
- Чтобы добавить администратора, выберите " Добавить администратора Microsoft Entra" и выберите пользователя, группу, приложение или управляемое удостоверение из текущего клиента 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:
- Пользователь — включая локальных и гостевых пользователей клиента.
- Субъект-служба. Включение приложений и управляемых удостоверений
- Группа, когда роль 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.
Следующие шаги
- Ознакомьтесь с общими понятиями проверки подлинности Microsoft Entra с помощью База данных Azure для PostgreSQL — гибкий сервер