Hoy voy a mostrar cómo almacenar los secretos de configuración de Azure App ServiceAzure App Service es una plataforma de Microsoft que permite desarrollar y alojar aplicaciones web y móviles en la nube. Ofrece soporte para varios lenguajes de programación, como .NET, Java, PHP y Python. Con características como escalado automático, integración continua y seguridad avanzada, Azure App Service facilita a los desarrolladores la construcción de aplicaciones robustas y escalables sin preocuparse por la infraestructura subyacente.... In 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 Active 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.... In diesem Beispiel, Ich werde a . verwenden Plataforma DNN sitio web basado en Azure App Service utilizando una DatenbankEine Datenbank ist ein organisierter Satz von Informationen, mit dem Sie, Effizientes Verwalten und Abrufen von Daten. Einsatz in verschiedenen Anwendungen, Von Unternehmenssystemen bis hin zu Online-Plattformen, Datenbanken können relational oder nicht-relational sein. Das richtige Design ist entscheidend für die Optimierung der Leistung und die Gewährleistung der Informationsintegrität, und erleichtert so eine fundierte Entscheidungsfindung in verschiedenen Kontexten.... SQL, die die Verbindungszeichenfolge der SQL-Datenbank in Azure Key Vault speichert. Ich werde die Anwendungscodebasis für den Zugriff auf Azure Key Vault in keiner Weise ändern. Wir werden die Managed Identity-Funktion von App Service nutzen, um automatisch Geheimnisse aus Key Vault abzurufen.
Aprovisionar Azure Key Vault
-
Aprovisionar Azure Key Vault
-
Für diese Demo, Wir werden das Berechtigungsmodell auf die neue rollenbasierte Zugriffssteuerung von Azure umstellen (RBAC). Es befindet sich derzeit in der Vorschau.
-
Abhängig von Ihrer Implementierung, ändere das Netzwerk nach Belieben. Für diese Demo, wir belassen es als öffentlichen Endpunkt, um den App Service-Einstellungen zu entsprechen.
- Klicken Sie auf die Überprüfung + Erschaffen Schaltfläche zum Starten der Bereitstellung
-
Einmal erstellt, füge dich der Funktion hinzu „Key Vault-Administrator (Vorschauversion)“ durch Zugangskontrolle (ICH BIN). Jetzt können Sie mit der Verwaltung von Geheimnissen beginnen.
Verbindungszeichenfolge zu Key Vault-Geheimnissen hinzufügen
-
Fügen Sie Key Vault ein neues Geheimnis hinzu
-
Geben Sie den Typ Geheimnis an „Handbuch“, Geben Sie ihm einen Namen und setzen Sie den Wert auf die aktuelle SQL-Datenbank-Verbindungszeichenfolge, die in der Webanwendung.config gespeichert ist
- Klicken Sie auf Erstellen. Einmal erstellt, Klicken Sie auf das Geheimnis, um die Details des Geheimnisses anzuzeigen, und klicken Sie dann erneut auf die aktuelle Version
-
Neben der geheimen Kennung, Klicken Sie auf die Schaltfläche In die Zwischenablage kopieren
Fügen Sie der Azure App Service-Konfiguration den Verweis auf den geheimen Bezeichner hinzu
- Öffnen Sie die App Service-Einstellungen und fügen Sie eine neue Einstellung für die Verbindungszeichenfolge hinzu.
- Geben Sie den Namen der Verbindungszeichenfolge ein („SiteSqlServer“ für die DNN-Plattform) und den Wert einstellen „@ Microsoft.KeyVault (SecretUri = VALUE_FROM_CLIPBOARD)“, wobei VALUE_FROM_CLIPBOARD das des Schrittes ist 4 aus dem vorherigen Abschnitt.
-
Klicken Sie auf Speichern, um die Anwendungseinstellungen zu speichern.
App Service den Zugriff auf Key Vault erlauben
- Wieder im App Service, Klicken Sie auf Identität, um die vom System zugewiesene Identität zu aktivieren.
-
Klicken Sie nach der Aktivierung auf Speichern „Aktiviert“ der Staat
-
Drück den Knopf „Rollenzuweisungen“ und dann klick „Rollenzuweisung hinzufügen (Vorschau)“
-
Bei der Rollenvergabe, Umfang wählen „Schlüsseltresor“, abonnieren Sie das Abonnement, in dem Sie Key Vault in den vorherigen Schritten erstellt haben, und den Namen der Key Vault-Ressource. Für die Rolle, einfach auswählen „Key Vault Secrets-Benutzer (Vorschau)“
-
Schließlich, Rufen Sie die Datei web.config Ihrer DNN-Plattform-Website auf und löschen Sie den Inhalt der Verbindungszeichenfolge.
- Besuchen Sie die Website und überprüfen Sie, ob sie richtig geladen wird. Jetzt, Die Verbindungszeichenfolge wird sicher in Azure Key Vault gespeichert und nicht mehr im Dateisystem gespeichert.
Bekannte Probleme
-
ERROR: Ein Fehler wird angezeigt „Schlüsselwort nicht unterstützt: ‚@ microsoft.keyvault (Geheimnisse'“. Ich habe die Erfahrung gemacht, dass die Beantragung von RBAC-Berechtigungen ein oder zwei Minuten dauern kann, Also versuche es nach ein paar Minuten. Versuchen Sie auch, den App-Gedanken im App Service-Portal neu zu starten, also wird nichts zwischengespeichert.
- Beim Überprüfen von DNN log4net-Protokollen, Sie sehen viele Fehler von einem Prozess, der versucht, eine Datenbankverbindung mit einer ungültigen Verbindungszeichenfolge während des DNN-Initialisierungsprozesses zu initialisieren. Dieser Fehler tritt derzeit in Versionen auf 9.7.2 oder früher mit einem ausstehenden Pull-Request, um das Problem zu beheben https://github.com/dnnsoftware/Dnn.Platform/issues/4227
- WICHTIG: wenn Sie die Sicherungsfunktion von Azure App Service verwenden möchten, Verwenden Sie diese Methode nicht zum Speichern von SQL-Datenbankverbindungszeichenfolgen in Azure Key Vault, da sie von der App Service Backup-Funktion nicht unterstützt werden. https://stackoverflow.com/questions/56101504/backingup-azure-webapp-when-connection-string-is-injected-through-keyvault
ich hoffe das hilft!
zusammenhängende Posts:
- Automatisierung von SSL-Zertifikatserneuerungen für Azure Application Gateway mit Let’s Encrypt und Azure Automation
- MLOps in Microsoft Azure | ML-Vorgänge auf Microsoft Azure
- Verwenden Sie Data Vault, um Ihr Data Warehouse richtig zu gestalten
- Android NoxPlayer-Emulator (Nox App-Player): am besten basierend auf Benutzerfeedback