Autenticação do Microsoft Entra ID e do PostgreSQL com o Azure Cosmos DB for PostgreSQL
APLICA-SE AO: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)
O Azure Cosmos DB for PostgreSQL dá suporte à autenticação e à integração do PostgreSQL ao Microsoft Entra ID. Cada cluster do Azure Cosmos DB for PostgreSQL é criado com a autenticação nativa do PostgreSQL habilitada e uma função interna do PostgreSQL chamada citus
. Você pode adicionar mais funções PostgreSQL nativas após a conclusão do provisionamento de cluster.
Você também pode habilitar a autenticação do Microsoft Entra ID (anteriormente Azure Active Directory) em um cluster, além do método de autenticação do PostgreSQL ou em vez dele. Você pode configurar métodos de autenticação em cada cluster do Azure Cosmos DB for PostgreSQL de forma independente. Se você precisar alterar o método de autenticação, poderá fazê-lo a qualquer momento após a conclusão do provisionamento de cluster. A alteração dos métodos de autenticação não requer a reinicialização do cluster.
Autenticação do PostgreSQL
o mecanismo do PostgreSQL usa funções para controlar o acesso a objeto de banco de dados. Um cluster do Azure Cosmos DB for PostgreSQL recém-criado vem com várias funções predefinidas:
- As funções padrão do PostgreSQL
postgres
citus
Como o Azure Cosmos DB for PostgreSQL é um serviço PaaS gerenciado, somente a Microsoft pode entrar com a função de superusuário postgres
. Para acesso administrativo limitado, o Azure Cosmos DB for PostgreSQL fornece a função citus
.
O serviço gerenciado precisa replicar todas as funções PostgreSQL para todos os nós em um cluster. Para facilitar esse requisito, todas as outras funções PostgreSQL precisam ser criadas usando os recursos de gerenciamento do Azure Cosmos DB for PostgreSQL.
A função Citus
Permissões para a função citus
:
- Leia todas as variáveis de configuração, até mesmo as normalmente visíveis somente para superusuários.
- Leia todas as exibições pg_stat_* e use várias extensões relacionadas a estatísticas, até mesmo as exibições ou extensões normalmente visíveis somente para superusuários.
- Execute funções de monitoramento que podem exigir bloqueios ACCESS SHARE em tabelas, possivelmente por um longo período.
- Criar extensões do PostgreSQL.
Em especial, a função citus
tem algumas restrições:
- Não é possível criar funções
- Não é possível criar bancos de dados
A função citus
não pode ser excluída, mas será desabilitada se o método de autenticação “Somente autenticação do Microsoft Entra ID” for selecionado no cluster.
Autenticação do Microsoft Entra ID
A autenticação do Microsoft Entra ID (anteriormente Azure Active Directory) é um mecanismo de conexão do Azure Cosmos DB for PostgreSQL que usa identidades definidas no Microsoft Entra ID. Com a autenticação do Microsoft Entra ID, você pode gerenciar as identidades de usuários do banco de dados e outros serviços da Microsoft em um local central, o que simplifica o gerenciamento de permissões.
Entre os benefícios do uso do Microsoft Entra ID estão:
- Autenticação de usuários em Serviços do Azure de forma uniforme
- Gerenciamento de políticas de senha e rotação de senhas em um único local
- Várias formas de autenticação com suporte do Microsoft Entra ID, o que pode eliminar a necessidade de armazenar senhas
- A autenticação do Microsoft Entra ID usa funções de banco de dados PostgreSQL para autenticar as identidades no nível do banco de dados
- Suporte de autenticação baseada em token em aplicativos que se conectam ao Azure Cosmos DB for PostgreSQL
Gerenciar o acesso do PostgreSQL para entidades de segurança do Microsoft Entra ID
Quando a autenticação do Microsoft Entra ID é habilitada e a entidade de segurança do Microsoft Entra é adicionada como administrador do Microsoft Entra ID, a conta obtém os mesmos privilégios da função citus
. A entrada do administrador do Microsoft Entra ID pode ser um usuário do Microsoft Entra ID, Entidade de Serviço ou Identidade Gerenciada. Vários administradores do Microsoft Entra ID podem ser configurados a qualquer momento, e você pode, opcionalmente, desabilitar a autenticação (senha) do PostgreSQL no cluster do Azure Cosmos DB for PostgreSQL para atender melhor às necessidades de auditoria e conformidade.
Além disso, qualquer número de funções não administrativas do Microsoft Entra ID pode ser adicionado a um cluster a qualquer momento depois que a autenticação do Microsoft Entra ID estiver ativada. As permissões do banco de dados para funções não administrativas do Microsoft Entra ID são gerenciadas de forma semelhante às funções regulares.
Conectar-se usando as identidades do Microsoft Entra ID
A autenticação do Microsoft Entra ID dá suporte aos seguintes métodos de conexão a um banco de dados usando identidades do Microsoft Entra ID:
- Senha do Microsoft Entra ID
- Microsoft Entra ID integrado
- Microsoft Entra ID Universal com MFA
- Usar certificados de aplicativo do Microsoft Entra ID ou segredos do cliente
- Identidade Gerenciada
Você recuperará um token ao se autenticar no Microsoft Entra ID. Esse token é sua senha para entrar.
Outras considerações
- Várias entidades de segurança do Microsoft Entra ID (um usuário, uma entidade de serviço ou uma identidade gerenciada) podem ser configuradas como administrador do Microsoft Entra ID para um cluster do Azure Cosmos DB for PostgreSQL a qualquer momento.
- Se uma entidade de segurança do Microsoft Entra ID for excluída do serviço do Microsoft Entra ID, ela ainda permanecerá como uma função do PostgreSQL no cluster, mas não poderá mais adquirir um novo token de acesso. Nesse caso, embora a função correspondente ainda exista no banco de dados do Postgres, ela não poderá se autenticar no nós de cluster. Administradores de banco de dados precisam transferir a propriedade e remover as funções manualmente.
Observação
Ainda será possível fazer logon com o usuário do Microsoft Entra ID excluído até a expiração do token (até 90 minutos após a emissão do token). Se você também remover o usuário do cluster do Azure Cosmos DB for PostgreSQL, esse acesso será revogado imediatamente.
- O Azure Cosmos DB for PostgreSQL faz a correspondência entre os tokens de acesso e a função de banco de dados usando a ID de usuário do Microsoft Entra ID exclusiva do usuário, em vez do nome de usuário. Se um usuário do Microsoft Entra ID for excluído e um novo usuário com o mesmo nome for criado, o Azure Cosmos DB for PostgreSQL vai considerá-lo um usuário diferente. Portanto, se um usuário for excluído do Microsoft Entra ID e um novo usuário com o mesmo nome for adicionado, o novo usuário não poderá se conectar à função existente.
Próximas etapas
- Confira Limites e limitações do Microsoft Entra no Azure Cosmos DB for PostgreSQL
- Saiba como configurar a autenticação para clusters do Azure Cosmos DB for PostgreSQL
- Para configurar o acesso à rede privada para os nós de cluster, confira Gerenciar o acesso privado
- Para configurar o acesso à rede pública para os nós de cluster, confira Gerenciar o acesso público