Hoy voy a mostrar cómo almacenar los secretos de configuración de Serviço de Aplicativo do AzureO Serviço de Aplicativo do Azure é uma plataforma da Microsoft que permite desenvolver e hospedar aplicativos Web e móveis na nuvem. Oferece suporte para várias linguagens de programação, como .NET, Java, PHP e Python. Com recursos como dimensionamento automático, Integração contínua e segurança avançada, O Serviço de Aplicativo do Azure torna mais fácil para os desenvolvedores criar aplicativos robustos e escalonáveis sem se preocupar com a infraestrutura subjacente.... sobre Azure Key VaultAzure Key Vault es un servicio de Microsoft Azure diseñado para almacenar y gestionar secretos, claves de cifrado y certificados de manera segura. Permite a las organizaciones proteger información sensible, controlando el acceso a través de políticas y autenticación. Con la integración de Azure Ative Directory, facilita la gestión de identidades y permisos, garantizando que solo los usuarios autorizados puedan acceder a los datos críticos. Ideal para mejorar la seguridad.... Neste exemplo, Vou usar um Plataforma DNN sitio web basado en Azure App Service utilizando una base de dadosUm banco de dados é um conjunto organizado de informações que permite armazenar, Gerencie e recupere dados com eficiência. Usado em várias aplicações, De sistemas corporativos a plataformas online, Os bancos de dados podem ser relacionais ou não relacionais. O design adequado é fundamental para otimizar o desempenho e garantir a integridade das informações, facilitando assim a tomada de decisão informada em diferentes contextos.... SQL, que almacena la cadena de conexión de la base de datos SQL en Azure Key Vault. Não alterarei a base de código da aplicação para aceder ao Azure Key Vault de forma alguma. Vamos aproveitar a funcionalidade de identidade gerida do App Service para recuperar automaticamente os segredos do Key Vault.
Aprovisionar o Azure Key Vault
-
Aprovisionar o Azure Key Vault
-
Para esta demonstração, Vamos mudar o modelo de permissões para o novo controlo de acesso baseado em funções do Azure (RBAC). Atualmente está em versão preliminar.
-
Dependendo da sua implementação, Altere a Rede conforme desejar. Para esta demonstração, Vamos deixá-lo como ponto de ligação público para coincidir com a configuração do App Service.
- Clique no Rever + Crio Botão para iniciar a implementação
-
Uma vez criado, Adicione-se à função “Administrador do Key Vault (versão preliminar)” através do Controlo de Acesso (IAM). Agora pode começar a gerir segredos.
Adicionar a cadeia de ligação aos segredos do Key Vault
-
Adicionar um novo segredo ao Key Vault
-
Especifique o tipo de segredo “Manual”, atribua-lhe um nome e defina o valor como a cadeia de ligação da base de dados SQL atual armazenada no web.config da aplicação
- Clique em Criar. Uma vez criado, clique no segredo para ver os detalhes do segredo e depois clique novamente na versão atual
-
Ao lado do Identificador do segredo, clique no botão Copiar para a área de transferência
Adicionar a referência do identificador secreto à configuração do Azure App Service
- Abra a configuração do App Service e adicione uma nova configuração de Cadeia de Ligação
- Digite o nome da cadeia de ligação (“SiteSqlServer” para a plataforma DNN) e defina o valor “@ Microsoft.KeyVault (SecretUri = VALUE_FROM_CLIPBOARD)”, onde VALUE_FROM_CLIPBOARD é o do passo 4 da secção anterior.
-
Clique em Guardar para guardar a configuração da aplicação.
Permitir que o App Service aceda ao Key Vault
- No App Service, novamente, clique em Identidade para ativar a identidade atribuída pelo sistema.
-
Clique em Guardar após ativar “ativado” O estado
-
Clique no botão “Atribuições de funções” install-pbi-2-5252226 “Adicionar atribuição de funções (vista prévia)”
-
En la asignación de roles, elija el alcance “Key Vault”, suscriba la suscripción donde creó el Key Vault en los pasos anteriores y el nombre del recurso de Key Vault. Para el rol, apenas selecione “Usuario de Key Vault Secrets (vista prévia)”
-
Finalmente, vaya al archivo web.config del sitio web de su plataforma DNN y borre el contenido de la cadena de conexión.
- Visite el sitio web y verifique que se cargue corretamente. Agora, la cadena de conexión se almacena de forma segura en Azure Key Vault y ya no se almacena en el sistema de archivos.
Problemas conocidos
-
ERRO: Aparece un error “Palabra clave no admitida: '@ microsoft.keyvault (secreturi'”. He experimentado que los permisos de RBAC pueden tardar uno o dos minutos en aplicarse, então tente novamente após alguns minutos. Tente também reiniciar a aplicação através do portal do App Service, portanto nada é armazenado em cache.
- Ao verificar os registos do DNN log4net, vê muitos erros de um processo que tenta inicializar uma ligação à base de dados com uma cadeia de ligação inválida durante o processo de inicialização do DNN. Este erro está a ocorrer atualmente nas versões 9.7.2 ou anteriores, com um pedido de pull pendente para o resolver https://github.com/dnnsoftware/Dnn.Platform/issues/4227
- IMPORTANTE: se planeia usar a funcionalidade de backup do Azure App Service, não utilize este método para armazenar cadeias de ligação da base de dados SQL no Azure Key Vault, ya que la función de copia de seguridad de App Service no las admite. https://stackoverflow.com/questions/56101504/backingup-azure-webapp-when-connection-string-is-injected-through-keyvault
Eu espero que isso ajude!


