Conectividade segura com serviços e bancos de dados do Azure a partir do Serviço de Aplicativo do Azure
Seu serviço de aplicativo pode precisar se conectar a outros serviços do Azure, como um banco de dados, armazenamento ou outro aplicativo. Esta visão geral recomenda diferentes métodos de conexão e quando usá-los.
Hoje, a decisão por uma abordagem de conectividade está intimamente relacionada ao gerenciamento de segredos. O padrão comum de usar segredos de conexão em cadeias de conexão, como nome de usuário e senha, chave secreta, etc., não é mais considerado a abordagem mais segura para conectividade. O risco é ainda maior hoje porque os agentes de ameaças rastreiam regularmente repositórios públicos do GitHub em busca de segredos de conexão cometidos acidentalmente. Para aplicações na nuvem, a melhor gestão de segredos é não ter segredos nenhuns. Quando você migra para o Serviço de Aplicativo do Azure, seu aplicativo pode começar com conectividade baseada em segredos, e o Serviço de Aplicativo permite que você mantenha segredos com segurança. No entanto, o Azure pode ajudar a proteger a conectividade back-end do seu aplicativo por meio da autenticação Microsoft Entra, que elimina completamente os segredos em seu aplicativo.
Método de ligação | Quando utilizar o |
---|---|
Conecte-se com uma identidade de aplicativo | * Você deseja remover credenciais, chaves ou segredos completamente do seu aplicativo. * O serviço downstream do Azure suporta a autenticação Microsoft Entra, como o Microsoft Graph. * O recurso downstream não precisa conhecer o usuário conectado atual ou não precisa de autorização granular do usuário conectado atual. |
Conectar-se em nome do usuário conectado | * O aplicativo deve acessar um recurso downstream em nome do usuário conectado. * O serviço downstream do Azure suporta a autenticação Microsoft Entra, como o Microsoft Graph. * O recurso downstream deve executar a autorização granular do usuário conectado atual. |
Conecte-se usando segredos | * O recurso a jusante requer segredos de ligação. * Seu aplicativo se conecta a serviços que não são do Azure, como um servidor de banco de dados local. * O serviço downstream do Azure ainda não suporta a autenticação Microsoft Entra. |
Conecte-se com uma identidade de aplicativo
Se seu aplicativo já usa um único conjunto de credenciais para acessar um serviço do Azure downstream, você pode converter rapidamente a conexão para usar uma identidade de aplicativo. Uma identidade gerenciada do Microsoft Entra ID permite que o Serviço de Aplicativo acesse recursos sem segredos e você pode gerenciar seu acesso por meio do RBAC (controle de acesso baseado em função). Uma identidade gerenciada pode se conectar a qualquer recurso do Azure que ofereça suporte à autenticação do Microsoft Entra e a autenticação ocorre com tokens de curta duração.
A imagem a seguir demonstra o seguinte: um Serviço de Aplicativo se conectando a outros serviços do Azure:
- R: O usuário visita o site do serviço de aplicativo do Azure.
- B: Conecte-se com segurança do Serviço de Aplicativo a outro serviço do Azure usando uma identidade gerenciada.
- C: Conecte-se com segurança do Serviço de Aplicativo ao Microsoft Graph usando uma identidade gerenciada.
Exemplos de uso de segredos de aplicativo para se conectar a um banco de dados:
- Tutorial: Conectar-se a bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada
- Tutorial: Ligar à Base de Dados SQL do Azure a partir de .NET App Service sem segredos mediante a utilização de uma identidade gerida
- Tutorial: Conectar-se a um banco de dados PostgreSQL a partir do Java Tomcat App Service sem segredos usando uma identidade gerenciada
Conectar-se em nome do usuário conectado
Seu aplicativo pode precisar se conectar a um serviço downstream em nome do usuário conectado. O Serviço de Aplicativo permite que você autentique facilmente usuários usando os provedores de identidade mais comuns (consulte Autenticação e autorização no Serviço de Aplicativo do Azure e no Azure Functions). Se você usar o provedor da Microsoft (autenticação Microsoft Entra), poderá fazer o fluxo do usuário conectado para qualquer serviço downstream. Por exemplo:
- Execute uma consulta de banco de dados que retorna dados confidenciais que o usuário conectado está autorizado a ler.
- Recupere dados pessoais ou execute ações como o usuário conectado no Microsoft Graph.
A imagem a seguir demonstra um aplicativo acessando com segurança um banco de dados SQL em nome do usuário conectado.
Alguns cenários comuns são:
- Conectar-se ao Microsoft Graph em nome do usuário
- Conectar-se a um banco de dados SQL em nome do usuário
- Conectar-se a outro aplicativo do Serviço de Aplicativo em nome do usuário
- Fluir o usuário conectado através de várias camadas de serviços downstream
Conecte-se usando segredos
Há duas maneiras recomendadas de usar segredos em seu aplicativo: usando segredos armazenados no Cofre da Chave do Azure ou segredos nas configurações do aplicativo do Serviço de Aplicativo.
Usar segredos do Cofre da Chave
O Azure Key Vault pode ser usado para armazenar segredos e chaves com segurança, monitorar o acesso e o uso de segredos e simplificar a administração de segredos de aplicativos. Se o serviço downstream não suportar a autenticação do Microsoft Entra ou exigir uma cadeia de conexão ou chave, use o Cofre da Chave para armazenar seus segredos e conectar seu aplicativo ao Cofre da Chave com uma identidade gerenciada e recuperar os segredos. Seu aplicativo pode acessar os segredos do cofre principal como referências do Cofre da Chave nas configurações do aplicativo.
Os benefícios das identidades gerenciadas integradas ao Key Vault incluem:
- O acesso ao segredo do cofre de chaves é restrito ao aplicativo.
- Os colaboradores do aplicativo, como administradores, podem ter controle total dos recursos do Serviço de Aplicativo e, ao mesmo tempo, não ter acesso aos segredos do cofre de chaves.
- Nenhuma alteração de código será necessária se o código do aplicativo já acessar segredos de conexão com as configurações do aplicativo.
- O Key Vault fornece monitoramento e auditoria de quem acessou segredos.
- A rotação dos segredos do cofre de chaves não requer alterações no Serviço de Aplicativo.
A imagem a seguir demonstra o Serviço de Aplicativo se conectando ao Cofre da Chave usando uma identidade gerenciada e, em seguida, acessando um serviço do Azure usando segredos armazenados no Cofre da Chave:
Usar segredos nas configurações do aplicativo
Para aplicativos que se conectam a serviços usando segredos (como nomes de usuário, senhas e chaves de API), o Serviço de Aplicativo pode armazená-los com segurança nas configurações do aplicativo. Esses segredos são injetados no código do aplicativo como variáveis de ambiente na inicialização do aplicativo. As configurações do aplicativo são sempre criptografadas quando armazenadas (criptografadas em repouso). Para um gerenciamento de segredos mais avançado, como rotação de segredos, políticas de acesso e histórico de auditoria, tente usar o Cofre de Chaves.
Exemplos de uso de segredos de aplicativo para se conectar a um banco de dados:
- Tutorial: Implantar um aplicativo ASP.NET Core e do Banco de Dados SQL do Azure no Serviço de Aplicativo do Azure
- Tutorial: Implantar um aplicativo ASP.NET no Azure com o Banco de Dados SQL do Azure
- Tutorial: Implantar um aplicativo PHP, MySQL e Redis no Serviço de Aplicativo do Azure
- Implantar um aplicativo Web Node.js + MongoDB no Azure
- Implantar um aplicativo Web Python (Django ou Flask) com PostgreSQL no Azure
- Tutorial: Criar um aplicativo Web Tomcat com o Serviço de Aplicativo do Azure no Linux e no MySQL
- Tutorial: Criar um aplicativo Web Java Spring Boot com o Serviço de Aplicativo do Azure no Linux e no Azure Cosmos DB
Próximos passos
Aprenda a:
- Armazene segredos com segurança no Cofre de Chaves do Azure.
- Acesse recursos usando uma identidade gerenciada.
- Armazene segredos usando as configurações do aplicativo Serviço de Aplicativo.
- Conecte-se ao Microsoft Graph como usuário.
- Conecte-se a um banco de dados SQL como o usuário.
- Conecte-se a outro aplicativo do Serviço de Aplicativo como usuário.
- Conecte-se a outro aplicativo do Serviço de Aplicativo e, em seguida, a um serviço downstream como usuário.