Para armazenar com segurança as teclas JWT em aplicativos lógicos do Azure, você pode aproveitar várias estratégias que aprimoram a segurança e a conformidade:
1. Use a identidade gerenciada (MI) para autenticação
- Por que é seguro: a identidade gerenciada elimina a necessidade de armazenar e gerenciar chaves ou segredos de conexão manualmente. Ele usa o AAD Active Directory (AAD) para acesso seguro, simplificando os processos de autenticação e autorização.- Como implementar: Ativar identidade gerenciada atribuída ao sistema para o seu aplicativo lógico. This allows the Logic App to authenticate with Azure services like Azure Key Vault without handling keys directly[1][9].
2. Azure Key Vault Integration
- Por que é seguro: o Azure Key Vault armazena e gerencia dados confidenciais, incluindo chaves criptográficas. As teclas podem ser criadas e usadas no Key Vault sem expor a chave privada.- Como implementar:
- Crie uma chave no Azure Key Vault usando o Azure CLI ou o Portal.
- Use a API REST do Azure Key Vault para acessar e gerenciar chaves do seu aplicativo lógico. Isso requer a configuração de políticas de acesso no Key Vault para permitir que seu aplicativo lógico recupere ou use as chaves [5] [6].
3. Geração e armazenamento seguro JWT
- Por que é seguro: a geração de JWTs envolve com segurança o uso de uma chave de assinatura segura e garantir que o token seja transmitido por HTTPS.- Como implementar:
- Use uma biblioteca como `jsonwebtoken` no node.js para gerar JWTs com uma chave secreta segura.
- Verifique se o segredo de assinatura é armazenado com segurança, idealmente no Azure Key Vault.
- Sempre transmita os JWTs sobre HTTPs para evitar a interceptação [3] [5].
4. Melhores práticas para manuseio JWT
- Defina os tempos de expiração apropriados: verifique se os JWTs têm tempos de expiração razoáveis para limitar o uso indevido.- Use HTTPS: sempre transmita JWTs sobre HTTPs.
- Continue assinando segredos seguros: nunca exponha seu segredo de assinatura do JWT [3].
Ao implementar essas estratégias, você pode gerenciar com segurança as teclas JWT em aplicativos lógicos do Azure, mantendo altos padrões de segurança e requisitos de conformidade.
Citações:
[1] https://learn.microsoft.com/en-ie/answers/questions/2088117/how-to-get-jwt-token-which-is-generated-in-vs-code
[2] https://www.descope.com/blog/post/developer-guide-jwt-storage
[3] https://www.restack.io/p/tokenization-azure-logic-apps-answer-cat-ai
[4] https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-custom-api-authentication
[5] https://zure.com/blog/azure-key-vault-sign-and-encrypt-json-web-tokens/
[6] https://stackoverflow.com/questions/57884305/using-azure-key-vault-on-azure-logic-app-api-Connection
[7] https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-securing-a-logic-app
[8] https://turbo360.com/blog/logic-app-best-practices-secure-your-azure-logic-apps
[9] https://gotoguy.blog/2020/12/04/blog-series-powering-up-your-home-office-lights-part-3-using-logic-apps-to-authorize-and-get-access-token-using-oauth-and-hue-remote-api/