Este projeto é uma Prova de Conceito (PoC) que demonstra como estabelecer conexões seguras com bancos de dados SQL Server e PostgreSQL utilizando autenticação do Entra ID (anteriormente conhecido como Azure AD) em uma aplicação C#.
O principal objetivo desta PoC é ilustrar:
- A integração do Entra ID com bancos de dados SQL Server e PostgreSQL.
- A implementação de conexões seguras tanto em ambientes locais quanto na nuvem Azure.
- A utilização de tokens de acesso para autenticação em bancos de dados.
- Autenticação com Entra ID para acesso a bancos de dados
- Conexão com SQL Server usando credenciais do Entra ID
- Conexão com PostgreSQL usando tokens de acesso do Entra ID
- Suporte para ambientes locais e na nuvem Azure
Esta PoC serve como um ponto de partida para desenvolvedores que desejam implementar autenticação segura em aplicações que necessitam acessar bancos de dados SQL Server e PostgreSQL, aproveitando as capacidades de segurança e gerenciamento de identidade do Entra ID da Microsoft.
-
Conexão com PostgreSQL usando Entra ID no .NET
-
Configuração de Autenticação Entra ID para Azure SQL
-
Documentação Microsoft sobre Autenticação com Entra ID
Como criar e remover usuários no SQL Server usando o Entra ID:
---------------- CRIAR USUÁRIO ----------------
-- Conectar ao banco de dados master
USE [master];
GO
-- Criar login para o usuário do Azure AD
CREATE LOGIN [UserEmailOuGroupName] FROM EXTERNAL PROVIDER;
GO
-- Conectar ao banco de dados onde você quer conceder permissões
USE [poc-ad-db];
GO
-- Criar usuário no banco de dados
CREATE USER [UserEmailOuGroupName] FROM EXTERNAL PROVIDER;
GO
-- Adicionar usuário ao papel db_datareader para permissões de leitura
ALTER ROLE db_datareader ADD MEMBER [UserEmailOuGroupName];
GO
-- Adicionar usuário ao papel db_datawriter para permissões de escrita
ALTER ROLE db_datawriter ADD MEMBER [UserEmailOuGroupName];
GO
-- APENAS PARA APIS e users que precisam ALTERAR O BANCO
ALTER ROLE db_ddladmin ADD MEMBER [UserEmailOuGroupName];
GO
---------------- DELETAR USUÁRIO ----------------
-- Conectar ao banco de dados específico
USE [poc-ad-db];
GO
-- Remover o usuário das funções (roles) do banco de dados
ALTER ROLE db_datareader DROP MEMBER [UserEmailOuGroupName];
GO
ALTER ROLE db_datawriter DROP MEMBER [UserEmailOuGroupName];
GO
-- Deletar o usuário do banco de dados
DROP USER [UserEmailOuGroupName];
GO
-- Conectar ao banco de dados master
USE master;
GO
-- Deletar o login do servidor
DROP LOGIN [UserEmailOuGroupName];
GO
Como criar e remover usuários no PostgreSQL usando o Entra ID:
-- TODO: Criar script