Partilhar via


ID do Microsoft Entra e autenticação do PostgreSQL com o Azure Cosmos DB para PostgreSQL

Importante

O Azure Cosmos DB para PostgreSQL não tem mais suporte para novos projetos. Não use este serviço para novos projetos. Em vez disso, use um destes dois serviços:

  • Use o Azure Cosmos DB para NoSQL para obter uma solução de banco de dados distribuído projetada para cenários de alta escala com um SLA (contrato de nível de serviço) de disponibilidade de 99.999%, dimensionamento automático instantâneo e failover automático em várias regiões.

  • Use a funcionalidade de Clusters Elásticos do Azure para PostgreSQL para PostgreSQL fragmentado, utilizando a extensão Citus de código aberto.

O Azure Cosmos DB para PostgreSQL suporta autenticação e integração do PostgreSQL com o Microsoft Entra ID. Cada cluster do Azure Cosmos DB para PostgreSQL é criado com a autenticação PostgreSQL nativa 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 Ative Directory) em um cluster além do método de autenticação PostgreSQL ou em vez dele. Você pode configurar métodos de autenticação em cada cluster do Azure Cosmos DB para PostgreSQL independentemente. Se precisar alterar o método de autenticação, você poderá fazê-lo a qualquer momento após a conclusão do provisionamento do cluster. A alteração dos métodos de autenticação não requer a reinicialização do cluster.

Autenticação PostgreSQL

O mecanismo PostgreSQL usa funções para controlar o acesso a objetos de banco de dados. Um cluster do Azure Cosmos DB para PostgreSQL recém-criado vem com várias funções predefinidas:

Como o Azure Cosmos DB para PostgreSQL é um serviço PaaS gerenciado, somente a Microsoft pode entrar com a postgres função de superusuário. Para acesso administrativo limitado, o Azure Cosmos DB para PostgreSQL fornece a citus função.

O serviço gerido precisa replicar todas as funções PostgreSQL em todos os nós de um cluster. Para facilitar esse requisito, todas as outras funções do PostgreSQL precisam ser criadas usando o Azure Cosmos DB para recursos de gerenciamento do PostgreSQL.

O papel do Citus

Permissões para a citus função:

  • Leia todas as variáveis de configuração, mesmo as variáveis normalmente visíveis apenas para superusuários.
  • Leia todas as visões pg_stat_* e use várias extensões relacionadas a estatísticas, incluindo visões ou extensões normalmente visíveis apenas para superusuários.
  • Executar funções de monitorização que possam ter bloqueios ACCESS SHARE em tabelas, potencialmente durante um longo período de tempo.
  • Crie extensões PostgreSQL.

É importante notar que a função citus tem algumas restrições:

  • Não é possível criar funções
  • Não é possível criar bancos de dados

citus função não pode ser excluída, mas será desabilitada se o método de autenticação 'Microsoft Entra ID only' for selecionado no cluster.

Autenticação do Microsoft Entra ID

A autenticação do Microsoft Entra ID (anteriormente Azure Ative Directory) é um mecanismo de conexão com o Azure Cosmos DB para PostgreSQL usando identidades definidas no Microsoft Entra ID. Com a autenticação do Microsoft Entra ID, você pode gerenciar identidades de usuário do banco de dados e outros serviços da Microsoft em um local central, o que simplifica o gerenciamento de permissões.

Os benefícios de usar o Microsoft Entra ID incluem:

  • Autenticação de usuários nos Serviços do Azure de maneira uniforme
  • Gerenciamento de políticas de senhas e rotação de senhas em um único lugar
  • Várias formas de autenticação suportadas pelo Microsoft Entra ID, que podem eliminar a necessidade de armazenar senhas
  • A autenticação de ID do Microsoft Entra usa funções de banco de dados PostgreSQL para autenticar identidades no nível do banco de dados
  • Suporte de autenticação baseada em token para aplicativos que se conectam ao Azure Cosmos DB para PostgreSQL

Gerenciar o acesso ao PostgreSQL para entidades de ID do Microsoft Entra

Quando a autenticação do Microsoft Entra ID está habilitada e a entidade de ID do Microsoft Entra é adicionada como um administrador do Microsoft Entra ID, a conta obtém os mesmos privilégios que a citus função. O início de sessão do administrador do Microsoft Entra ID pode ser um utilizador do Microsoft Entra ID, um Principal de Serviço ou uma identidade gerida. Vários administradores de ID do Microsoft Entra podem ser configurados a qualquer momento e, opcionalmente, você pode desabilitar a autenticação PostgreSQL (senha) no cluster do Azure Cosmos DB para PostgreSQL para melhores necessidades de auditoria e conformidade.

Além disso, qualquer número de funções não administrativas do Microsoft Entra ID pode ser adicionada a um cluster a qualquer momento assim que a autenticação do Microsoft Entra ID estiver habilitada. As permissões de 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 identidades de ID do Microsoft Entra

A autenticação do Microsoft Entra ID oferece 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
  • Usando certificados de aplicativo do Microsoft Entra ID ou segredos de cliente
  • Identidade Gerida

Depois de autenticado com a ID do Microsoft Entra, você recupera um token. Este token é a sua palavra-passe para iniciar sessão.

Outras considerações

  • Várias entidades de ID do Microsoft Entra (um usuário, entidade de serviço ou identidade gerenciada) podem ser configuradas como administrador de ID do Microsoft Entra para um cluster do Azure Cosmos DB para PostgreSQL a qualquer momento.
  • Se uma entidade do Microsoft Entra ID for excluída do serviço Microsoft Entra ID, ela ainda continuará como uma função PostgreSQL no cluster, mas não poderá mais adquirir novos tokens de acesso. Nesse caso, embora a função correspondente ainda exista no banco de dados Postgres, ela não pode se autenticar nos nós do cluster. Os administradores de banco de dados precisam transferir a propriedade e descartar essas funções manualmente.

Nota

O login com o usuário excluído do Microsoft Entra ID ainda pode ser feito até que o token expire (até 90 minutos a partir da emissão do token). Se você também remover o usuário do cluster do Azure Cosmos DB para PostgreSQL, esse acesso será revogado imediatamente.

  • O Azure Cosmos DB para PostgreSQL associa os tokens de acesso à função de base de dados usando a ID exclusiva de utilizador do Microsoft Entra, em vez de usar o nome de utilizador. Se um usuário do Microsoft Entra ID for excluído e um novo usuário for criado com o mesmo nome, o Azure Cosmos DB para PostgreSQL considerará que um usuário diferente. Portanto, se um usuário for excluído do Microsoft Entra ID e um novo usuário for adicionado com o mesmo nome, o novo usuário não poderá se conectar com a função existente.

Próximos passos