Como usar o Azure Functions para criptografia de dados

A criptografia de dados é essencial para proteger informações sensíveis e, quando combinada com ferramentas de automação como o Power Automate, torna-se ainda mais poderosa. O Azure Functions, um serviço de computação sem servidor que permite executar pequenos trechos de código na nuvem, pode desempenhar um papel fundamental na implementação de criptografia em seus fluxos de trabalho automatizados. Este artigo irá guiá-lo sobre como usar o Azure Functions no Power Automate para criptografar e descriptografar dados, garantindo que seus processos de negócios permaneçam seguros.
Por Que Usar o Azure Functions para Criptografia de Dados?
O Azure Functions oferece várias vantagens para a criptografia de dados:
Escalabilidade: O Azure Functions escala automaticamente com base na demanda, tornando-o ideal para processar grandes volumes de dados.
Flexibilidade: Você pode escrever funções no Azure Functions em várias linguagens de programação (por exemplo, C#, Python, JavaScript) e personalizar o processo de criptografia para atender às suas necessidades específicas.
Integração: O Azure Functions pode ser facilmente integrado ao Power Automate, permitindo o processamento contínuo de dados em seus fluxos de trabalho.
Configurando o Azure Functions para Criptografia
Para começar, siga os seguintes passos:
Passo 1: Criar um Azure Function App
Entre no portal do Azure.
Navegue até “Criar um recurso” e procure por “Function App”.
Preencha os detalhes necessários (Assinatura, Grupo de Recursos, Nome do Function App, Stack de Runtime, Região, etc.).
Clique em “Criar” para implantar seu Function App.
Passo 2: Escrever o Código de Criptografia
No portal do Azure, navegue até seu novo Function App criado.
Crie uma nova função dentro do aplicativo, escolhendo a linguagem de sua preferência (por exemplo, C#, Python).
Escreva o código para lidar com a criptografia e descriptografia. Aqui está um exemplo em C# usando criptografia AES:
C#
using System;
using System.IO;
using System.Security.Cryptography;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
public static class EncryptFunction
{
[FunctionName("EncryptData")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("Processing encryption request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var data = JsonConvert.DeserializeObject<EncryptRequest>(requestBody);
if (data == null || string.IsNullOrEmpty(data.PlainText) || string.IsNullOrEmpty(data.Key))
{
return new BadRequestObjectResult("Invalid input.");
}
try
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Convert.FromBase64String(data.Key);
aesAlg.GenerateIV();
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
using (MemoryStream msEncrypt = new MemoryStream())
{
msEncrypt.Write(aesAlg.IV, 0, aesAlg.IV.Length);
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(data.PlainText);
}
var encryptedData = msEncrypt.ToArray();
return new OkObjectResult(Convert.ToBase64String(encryptedData));
}
}
}
catch (Exception ex)
{
log.LogError($"Error during encryption: {ex.Message}");
return new StatusCodeResult(500);
}
}
public class EncryptRequest
{
public string PlainText { get; set; }
public string Key { get; set; }
}
}Passo 3: Implantar a Função
Após escrever o código da função, implante-o diretamente do portal do Azure ou do seu ambiente de desenvolvimento local usando Visual Studio ou VS Code.
Teste a função enviando requisições HTTP POST com os dados de entrada necessários (por exemplo, texto puro e chave de criptografia).
Integrando Azure Functions ao Power Automate
Uma vez que sua função no Azure esteja funcionando, você pode integrá-la ao seu fluxo de trabalho no Power Automate.
Passo 1: Criar um Novo Fluxo no Power Automate
Abra o Power Automate e crie um novo fluxo. Escolha o gatilho que melhor se adapte ao seu fluxo de trabalho (por exemplo, quando um item é criado no SharePoint ou um novo email chega).
Adicione uma ação “HTTP” ao fluxo. Essa ação enviará os dados para sua função no Azure.
Passo 2: Configurar a Ação HTTP
Defina o método como “POST”.
Insira a URL da sua função no Azure (você pode encontrar isso no portal do Azure, na seção “Obter URL da função”).
No corpo da requisição, passe os dados que precisam ser criptografados, como este exemplo:
JSON
{
"PlainText": "@{triggerOutputs()?['body/TextToEncrypt']}",
"Key": "<your-encryption-key>"
}Passo 3: Manipular a Resposta
Após a função retornar os dados criptografados, use a saída nos próximos passos do seu fluxo. Por exemplo, você pode armazenar os dados criptografados em um banco de dados ou enviá-los por email.
Passo 4: Descriptografia (Opcional)
Se você precisar descriptografar os dados posteriormente em seu fluxo de trabalho, pode criar uma função similar no Azure que lide com a descriptografia e chamá-la do Power Automate usando outra ação HTTP.
Melhores práticas para usar Azure Functions
Proteja Suas Chaves: Armazene suas chaves de criptografia com segurança no Azure Key Vault e recupere-as dentro de sua função no Azure para evitar expô-las no código.
Otimizar Desempenho: Criptografar e descriptografar grandes volumes de dados pode consumir muitos recursos. Considere usar os recursos de escalabilidade do Azure Functions para lidar com cargas altas de forma eficiente.
Tratamento de Erros: Implemente um tratamento robusto de erros dentro de suas funções no Azure e do fluxo do Power Automate para gerenciar qualquer problema durante a criptografia ou descriptografia.
Monitoramento e Logs: Use o Azure Application Insights ou outras ferramentas de log para monitorar o desempenho e a segurança de suas funções no Azure.
Conclusão
O Azure Functions, quando combinado com o Power Automate, oferece uma solução flexível e escalável para implementar criptografia de dados em seus fluxos de trabalho automatizados. Seja para criptografar informações sensíveis antes de armazená-las ou para descriptografá-las para processamento, o Azure Functions fornece as ferramentas necessárias para alcançar isso de forma integrada. Seguindo os passos descritos acima, você pode garantir que seus dados permaneçam seguros enquanto aproveita o poder da automação em seus processos de negócios.
Veja também nosso artigo sobre Modernização de bancos e financeiras com SharePoint e Power Platform.
Luiz Antonio Sgargeta é sócio fundador e CEO da Trinapse, consultoria brasileira de Microsoft 365 com quase duas décadas de operação, acumula mais de 20 anos em desenvolvimento de software e em ambientes corporativos de alta complexidade.
Ver maisVer menos
Trabalha com SharePoint desde o SharePoint Portal Server 2003 e com .NET desde a versão 1.0. Acompanhou a plataforma em todas as suas reinvenções, do portal de documentos on-premises ao SharePoint Online dentro do Microsoft 365, o que dá a ele uma leitura rara sobre o que muda de verdade e o que é apenas nome novo para o mesmo problema.
No início da carreira atuou em uma das maiores operações de e-commerce do país, em sistemas que não toleram degradação de performance nem indisponibilidade, essa origem definiu o critério que ele aplica até hoje: solução boa é a que sustenta volume real, integra com o legado que já existe e não quebra no pico.
Depois disso, passou por praticamente todo tipo de projeto corporativo, de portais e intranets de milhares de usuários a integrações críticas e automação de processos de ponta a ponta, sempre em grandes empresas e em desafios de alta exigência.
A marca do trabalho dele é a tradução entre tecnologia e negócio, levanta a necessidade real por trás do pedido do cliente, questiona o processo antes de automatizá-lo e desenha a solução pelo resultado esperado, não pela ferramenta disponível, é o que permite conversar com a diretoria sobre retorno e com o time técnico sobre arquitetura na mesma reunião.
Hoje lidera a frente comercial e estratégica da Trinapse e conduz a empresa no novo ciclo da inteligência artificial, com foco em agentes de IA e operação de processos assistida por IA para cooperativas de crédito, agronegócio e indústria. Escreve no blog da Trinapse desde 2019, com mais de 450 artigos sobre IA, SharePoint, Power Platform, Modern Workplace e transformação de processos, sempre a partir de projeto entregue e não de teoria.



