Oggi vi mostrerò come memorizzare i segreti di configurazione di Servizio app di AzureAzure App Service è una piattaforma di Microsoft che consente di sviluppare e ospitare applicazioni web e mobili nel cloud. Offre supporto per vari linguaggi di programmazione, come .NET, Giava, PHP e Python. Con funzionalità come il ridimensionamento automatico, integrazione continua e sicurezza avanzata, Azure App Service facilita agli sviluppatori la costruzione di applicazioni robuste e scalabili senza preoccuparsi dell'infrastruttura sottostante.... Su Azure Key VaultAzure Key Vault è un servizio di Microsoft Azure progettato per memorizzare e gestire in modo sicuro segreti, chiavi di crittografia e certificati. Consente alle organizzazioni di proteggere informazioni sensibili, controllando l'accesso tramite criteri e autenticazione. Con l'integrazione di Azure Active Directory, facilita la gestione delle identità e delle autorizzazioni, garantendo che solo gli utenti autorizzati possano accedere ai dati critici. Ideale per migliorare la sicurezza.... In questo esempio, Userò un Piattaforma DNN sito web basato su Azure App Service utilizzando una Banca datiUn database è un insieme organizzato di informazioni che consente di archiviare, Gestisci e recupera i dati in modo efficiente. Utilizzato in varie applicazioni, Dai sistemi aziendali alle piattaforme online, I database possono essere relazionali o non relazionali. Una progettazione corretta è fondamentale per ottimizzare le prestazioni e garantire l'integrità delle informazioni, facilitando così il processo decisionale informato in diversi contesti.... SQL, che memorizza la stringa di connessione del database SQL in Azure Key Vault. Non modificherò il codice dell'applicazione per accedere ad Azure Key Vault in alcun modo. Sfrutteremo la funzione di identità gestita di App Service per recuperare automaticamente i segreti da Key Vault.
Provisionare Azure Key Vault
-
Provisionare Azure Key Vault
-
Per questa dimostrazione, cambieremo il modello di autorizzazioni al nuovo controllo degli accessi basato sui ruoli di Azure (RBAC). Actualmente está en versión preliminar.
-
Dependiendo de su implementación, cambie la Red como desee. Per questa dimostrazione, lo dejaremos como punto de conexión público para que coincida con la configuración de App Service.
- Clicca sul Revisar + Creare botón para iniciar la implementación
-
Una vez creado, agréguese a la función “Administrador de Key Vault (versión preliminar)” a través del Control de acceso (IAM). Ahora puedes empezar a gestionar secretos.
Agregar la cadena de conexión a los secretos de Key Vault
-
Agregar un nuevo secreto a Key Vault
-
Especifique el secreto de tipo “Manuale”, assegna un nome e imposta il valore nella stringa di connessione del database SQL attualmente memorizzata in web.config dell'applicazione
- Fai clic su Crea. Una vez creado, fai clic sul segreto per vedere i dettagli del segreto e poi fai di nuovo clic sulla versione corrente
-
Accanto all'ID segreto, fai clic sul pulsante Copia negli appunti
Aggiungi il riferimento all'ID segreto nella configurazione di Azure App Service
- Apri le impostazioni di App Service e aggiungi una nuova impostazione di Stringa di connessione
- Digita il nome della stringa di connessione (“SiteSqlServer” per la piattaforma DNN) e imposta il valore “@ Microsoft.KeyVault (SecretUri = VALORE_DA_APPUNTI)”, donde VALUE_FROM_CLIPBOARD es el del paso 4 de la sección anterior.
-
Haga clic en Guardar para guardar la configuración de la aplicación.
Permitir que App Service acceda a Key Vault
- En App Service nuevamente, haga clic en Identidad para habilitar la identidad asignada por el sistema.
-
Haga clic en guardar después de activar “attivato” lo stato
-
Fare clic sul pulsante “Asignaciones de roles” e quindi fare clic su “Agregar asignación de roles (anteprima)”
-
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, basta selezionare “Usuario de Key Vault Secrets (anteprima)”
-
Finalmente, vai al file web.config del sito web della tua piattaforma DNN e cancella il contenuto della stringa di connessione.
- Visita il sito web e verifica che venga caricato correttamente. Ora, La stringa di connessione viene memorizzata in modo sicuro in Azure Key Vault e non viene più conservata nel file system.
Problemi noti
-
ERRORE: Comparirà un errore “Parola chiave non supportata: ‘@ microsoft.keyvault (secreturi'”. Ho notato che i permessi RBAC possono richiedere uno o due minuti per essere applicati, quindi prova dopo qualche minuto. Prova anche a riavviare l'applicazione tramite il portale di App Service, così non viene memorizzato nulla nella cache.
- Controllando i log di DNN log4net, ve muchos errores de un proceso que intenta inicializar una conexión de base de datos con una cadena de conexión no válida durante el proceso de inicialización de DNN. Este error está ocurriendo actualmente en las versiones 9.7.2 o anteriores con una solicitud de extracción pendiente para solucionarlo https://github.com/dnnsoftware/Dnn.Platform/issues/4227
- IMPORTANTE: si planea usar la función de copia de seguridad de Azure App Service, no use este método para almacenar cadenas de conexión de la base de datos SQL en 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
Spero che questo aiuti!


