Conectividade segura com os serviços e bancos de dados do Azure por meio do Serviço de Aplicativo do Azure
Talvez o serviço de aplicativo precise se conectar a outros serviços do Azure, como um banco de dados, um armazenamento ou outro aplicativo. Essa visão geral recomenda métodos diferentes para se conectar e quando usá-los.
Hoje, a decisão de uma abordagem de conectividade está intimamente relacionada ao gerenciamento de segredos. O padrão comum de uso de 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 atores de ameaça rastreiam regularmente os repositórios públicos do GitHub em busca de segredos de conexão acidentalmente confirmados. Para aplicativos de nuvem, o melhor gerenciamento de segredos é não ter segredos. Quando você migra para o Serviço de Aplicativo do Azure, seu aplicativo pode começar com a conectividade baseada em segredos e o Serviço de Aplicativo permite manter os segredos com segurança. No entanto, o Azure pode ajudar a proteger a conectividade de back-end do aplicativo por meio da autenticação do Microsoft Entra, que elimina completamente os segredos do seu aplicativo.
Método de conexão | Quando usar |
---|---|
Conectar-se com uma identidade de aplicativo | * Você deseja remover credenciais, chaves ou segredos completamente do seu aplicativo. * O serviço downstream do Azure dá suporte à autenticação do Microsoft Entra, como o Microsoft Graph. * O recurso downstream não precisa saber 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 precisa acessar um recurso downstream em nome do usuário conectado. * O serviço downstream do Azure dá suporte à autenticação do Microsoft Entra, como o Microsoft Graph. * O recurso downstream precisa realizar a autorização granular do usuário conectado atual. |
Conectar-se usando segredos | * O recurso downstream exige segredos de conexã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 dá suporte à autenticação do Microsoft Entra. |
Conectar-se com uma identidade de aplicativo
Se o seu aplicativo já usa um só conjunto de credenciais para acessar um serviço downstream do Azure, 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 dê suporte à autenticação do Microsoft Entra, e a autenticação ocorre com tokens de curta duração.
A seguinte imagem demonstra um Serviço de Aplicativo que se conecta a outros serviços do Azure:
- A: O usuário visita o site do Serviço de Aplicativo do Azure.
- B: ele se conecta com segurança no Serviço de Aplicativo a outro serviço do Azure usando a identidade gerenciada.
- C: ele se conecta com segurança no Serviço de Aplicativo ao Microsoft Graph usando uma identidade gerenciada.
Exemplos de como usar segredos do aplicativo para se conectar a um banco de dados:
- Tutorial: conectar-se aos bancos de dados do Azure do Serviço de Aplicativo sem segredos usando uma identidade gerenciada
- Tutorial: Conectar-se ao Banco de Dados SQL do Serviço de Aplicativo .NET sem segredos usando uma identidade gerenciada
- Tutorial: Conectar-se ao Banco de Dados PostgreSQL do Serviço de Aplicativo Java Tomcat sem segredos usando uma identidade gerenciada
Conectar-se em nome do usuário conectado
Talvez seu aplicativo precise se conectar a um serviço downstream em nome do usuário conectado. O Serviço de Aplicativo permite autenticar com facilidade os usuários usando os provedores de identidade mais comuns (confira 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 do Microsoft Entra), poderá permitir 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.
Os dois cenários mais 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
- Permitir o fluxo do usuário conectado por várias camadas de serviços downstream
Conectar-se usando segredos
Há duas maneiras recomendadas de usar segredos em seu aplicativo: usar segredos armazenados no Azure Key Vault ou segredos nas configurações de aplicativo do Serviço de Aplicativo.
Usar segredos do Key Vault
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 do aplicativo. Se o serviço downstream do seu aplicativo não der suporte à autenticação do Microsoft Entra ou exigir uma cadeia de conexão ou chave, use o Key Vault para armazenar seus segredos e conectar seu aplicativo ao Key Vault com uma identidade gerenciada e recuperar os segredos. Seu aplicativo pode acessar os segredos do cofre de chaves como referências do Key Vault nas configurações de aplicativo.
Os benefícios das identidades gerenciadas integradas com o 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 têm acesso aos segredos do cofre de chaves.
- Se o código do aplicativo já acessar segredos de conexão com as configurações do aplicativo, nenhuma alteração será necessária.
- O Key Vault oferece monitoramento e auditoria de quem acessou os segredos.
- A rotação de segredos do cofre de chaves não exige alterações no Serviço de Aplicativo.
A seguinte imagem demonstra o Serviço de Aplicativo se conectando ao Key Vault usando uma identidade gerenciada e acessando um serviço do Azure usando segredos armazenados no Key Vault:
Usar segredos nas configurações do aplicativo
No caso de aplicativos que se conectam aos 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 de 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 ter um gerenciamento de segredos mais avançado, como rotação de segredos, políticas de acesso e histórico de auditoria, experimente usar o Key Vault.
Exemplos de como usar segredos do 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 Python (Django ou Flask) com o PostgreSQL no Azure
- Tutorial: Criar um aplicativo Web do Tomcat com o Serviço de Aplicativo do Azure no Linux e o MySQL
- Tutorial: Criar um aplicativo Web Java do Spring Boot com o Serviço de Aplicativo do Azure no Linux e o Azure Cosmos DB
Próximas etapas
Saiba como:
- Armazenar segredos com segurança no Azure Key Vault.
- Acessar recursos do Azure usando uma identidade gerenciada.
- Armazenar segredos usando as configurações de aplicativo do Serviço de Aplicativo.
- Conectar-se ao Microsoft Graph como usuário.
- Conectar-se a um Banco de Dados SQL como usuário.
- Conectar-se a outro aplicativo do Serviço de Aplicativo como usuário.
- Conectar a outro aplicativo do Serviço de Aplicativo e, em seguida, a um serviço downstream como usuário.