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


Microsoft Entra ID и аутентификация PostgreSQL с использованием Azure Cosmos DB для PostgreSQL

Это важно

Azure Cosmos DB для PostgreSQL больше не поддерживается для новых проектов. Не используйте эту службу для новых проектов. Вместо этого используйте одну из этих двух служб:

Azure Cosmos DB для PostgreSQL поддерживает проверку подлинности PostgreSQL и интеграцию с идентификатором Microsoft Entra. Каждый кластер Azure Cosmos DB для PostgreSQL создается с включенной аутентификацией PostgreSQL и одной встроенной ролью PostgreSQL citus. После завершения подготовки кластера можно добавить дополнительные собственные роли PostgreSQL.

Кроме того, вы можете включить проверку подлинности Microsoft Entra ID (ранее Azure Active Directory) в кластере в дополнение к методу проверки подлинности PostgreSQL или вместо него. Методы проверки подлинности можно настроить в каждом кластере Azure Cosmos DB для PostgreSQL независимо. Если необходимо изменить метод проверки подлинности, его можно сделать в любое время после завершения подготовки кластера. Изменение методов проверки подлинности не требует перезапуска кластера.

Проверка подлинности PostgreSQL

Модуль PostgreSQL использует роли для управления доступом к объектам базы данных. Недавно созданный кластер Azure Cosmos DB для PostgreSQL поставляется с несколькими предопределенными ролями:

Поскольку Azure Cosmos DB для PostgreSQL является управляемой службой PaaS, только корпорация Майкрософт может войти в систему с ролью суперпользователя. Для ограниченного административного доступа Azure Cosmos DB для PostgreSQL предоставляет citus роль.

Управляемая служба должна реплицировать все роли PostgreSQL ко всем узлам в кластере. Чтобы упростить это требование, необходимо создать все остальные роли PostgreSQL с помощью возможностей управления Azure Cosmos DB для PostgreSQL.

Роль Citus

Разрешения для роли citus:

  • чтение всех переменных конфигурации, даже переменных, которые обычно видны только суперпользователям;
  • Читайте все представления pg_stat_* и используйте различные статистические расширения — даже те представления или расширения, которые обычно видны только суперпользователям.
  • Выполнение функций мониторинга, которые могут занять блокировки ACCESS SHARE в таблицах, потенциально в течение длительного времени.
  • Создание расширений PostgreSQL.

У роли citus и есть некоторые ограничения:

  • не может создавать роли;
  • не может создавать базы данных.

citus роль не может быть удалена, но будет отключена, если в кластере выбран метод проверки подлинности только идентификатора Microsoft Entra.

Проверка подлинности идентификатора Microsoft Entra

Проверка подлинности Microsoft Entra ID (ранее — Azure Active Directory) — это механизм подключения к Azure Cosmos DB для PostgreSQL с помощью удостоверений, определенных в идентификаторе Microsoft Entra. С помощью идентификации Microsoft Entra можно управлять удостоверениями пользователей базы данных и другими службами Майкрософт в центральном месте, что упрощает управление разрешениями.

Преимущества использования идентификатора Microsoft Entra:

  • единая проверка подлинности пользователей в службах Azure;
  • централизованное управление политиками паролей и сменой паролей;
  • Несколько форм проверки подлинности, поддерживаемых идентификатором Microsoft Entra, что может исключить необходимость хранения паролей.
  • Проверка подлинности идентификатора Microsoft Entra использует роли базы данных PostgreSQL для проверки подлинности удостоверений на уровне базы данных
  • Поддержка проверки подлинности на основе маркеров для приложений, подключающихся к Azure Cosmos DB для PostgreSQL

Управление доступом PostgreSQL для субъектов идентификатора Microsoft Entra

Если проверка подлинности идентификатора Microsoft Entra ID включена и субъект идентификатора Microsoft Entra добавляется в качестве администратора идентификатора Microsoft Entra, учетная запись получает те же привилегии, что citus и роль. Вход администратора Microsoft Entra ID может быть пользователем Microsoft Entra ID, Принципалом службы или управляемым удостоверением. Несколько администраторов Microsoft Entra ID можно настроить в любое время, и при необходимости можно отключить аутентификацию в PostgreSQL с использованием пароля для кластера Azure Cosmos DB для PostgreSQL, чтобы улучшить процессы аудита и соответствие нормативным требованиям.

Кроме того, в любое время после включения проверки подлинности Microsoft Entra ID можно добавлять в кластер любое количество ролей, которые не являются административными. Разрешения базы данных для неадминистраторских ролей Microsoft Entra ID управляются аналогично обычным ролям.

Подключение с помощью удостоверений идентификаторов Microsoft Entra

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

  • Пароль идентификатора Microsoft Entra
  • Интегрированный идентификатор Microsoft Entra
  • Универсальный идентификатор Microsoft Entra ID с многофакторной аутентификацией
  • Использование сертификатов приложений для идентификатора Microsoft Entra ID или клиентских секретов
  • Управляемое удостоверение

После проверки подлинности с использованием идентификатора Microsoft Entra вы получите токен. Этот маркер является вашим паролем для входа в систему.

Другие вопросы

  • Несколько учетных записей Microsoft Entra ID (пользователь, служебная учетная запись или управляемая идентификация) можно настроить как администратора Microsoft Entra ID для кластера Azure Cosmos DB для PostgreSQL в любое время.
  • Если субъект Microsoft Entra ID удалён из службы Microsoft Entra, он по-прежнему остаётся в качестве роли PostgreSQL в кластере, но больше не может получать новые маркеры доступа. В этом случае, хотя соответствующая роль по-прежнему существует в базе данных Postgres, она не может пройти проверку подлинности на узлах кластера. Администраторы базы данных должны передавать права владения и удалять такие роли вручную.

Примечание.

Вход с удаленным пользователем идентификатора Microsoft Entra по-прежнему можно выполнить до истечения срока действия маркера (до 90 минут от выдачи маркера). Если вы также удалите пользователя из кластера Azure Cosmos DB для PostgreSQL, этот доступ будет немедленно отменен.

  • Azure Cosmos DB для PostgreSQL соотносит маркеры доступа с ролью базы данных, используя уникальный идентификатор пользователя Microsoft Entra ID, а не имя пользователя. Если пользователь с идентификатором Microsoft Entra ID удаляется и создается новый пользователь с тем же именем, Azure Cosmos DB для PostgreSQL считает его другим пользователем. Таким образом, если пользователь удаляется из Microsoft Entra ID, а новый пользователь добавляется с тем же именем, этот новый пользователь не сможет подключиться к существующей роли.

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