Konnektivität mit Azure-Diensten und -Datenbanken aus Azure App Service sicherstellen
Ihr App Service muss möglicherweise eine Verbindung mit anderen Azure-Diensten herstellen, z. B. einer Datenbank, einem Speicher oder einer anderen App. In dieser Übersicht werden verschiedene Methoden zum Herstellen einer Verbindung und der Zeitpunkt ihrer Verwendung empfohlen.
Heutzutage hängt die Entscheidung für einen Konnektivitätsansatz eng mit der Verwaltung von Geheimnissen zusammen. Das häufige Muster der Verwendung von Verbindungsgeheimnissen in Verbindungszeichenfolgen, z. B. Benutzername und Kennwort, geheimer Schlüssel usw. wird nicht mehr als der sicherste Ansatz für die Konnektivität betrachtet. Das Risiko ist noch höher, da Bedrohungsakteure regelmäßig öffentliche GitHub-Repositorys für versehentlich begangene Verbindungsgeheimnisse durchforsten. Bei Cloud-Anwendungen besteht die beste Methode zur Geheimnisverwaltung darin, überhaupt keine Geheimnisse zu haben. Wenn Sie zu Azure App Service migrieren, startet Ihre App möglicherweise mit einer auf Geheimnissen basierenden Konnektivität, und App Service ermöglicht Ihnen die sichere Aufbewahrung von Geheimnissen. Azure kann jedoch dazu beitragen, die Back-End-Konnektivität Ihrer App über die Microsoft Entra-Authentifizierung zu sichern, wodurch geheime Schlüssel in Ihrer App vollständig beseitigt werden.
Verbindungsmethode | Einsatzgebiete |
---|---|
Herstellen einer Verbindung mit einer App-Identität | * Sie möchten Anmeldeinformationen, Schlüssel oder Geheimnisse vollständig aus Ihrer Anwendung entfernen. * Der nachgeschaltete Azure-Dienst unterstützt die Microsoft Entra-Authentifizierung, z. B. Microsoft Graph. * Die nachgelagerte Ressource muss den aktuellen angemeldeten Benutzer nicht kennen oder keine präzise Autorisierung des aktuellen angemeldeten Benutzers benötigen. |
Verbinden im Auftrag des angemeldeten Benutzers | * Die App muss im Namen des angemeldeten Benutzers auf eine nachgelagerte Ressource zugreifen. * Der nachgeschaltete Azure-Dienst unterstützt die Microsoft Entra-Authentifizierung, z. B. Microsoft Graph. * Die nachgelagerte Ressource muss eine granulare Autorisierung des aktuellen angemeldeten Benutzers durchführen. |
Verbinden mithilfe von Geheimnissen | * Für die nachgeschaltete Ressource sind Verbindungsschlüssel erforderlich. * Ihre App stellt eine Verbindung mit Nicht-Azure-Diensten wie einem lokalen Datenbankserver bereit. * Der nachgeschaltete Azure-Dienst unterstützt die Microsoft Entra-Authentifizierung noch nicht. |
Herstellen einer Verbindung mit einer App-Identität
Wenn Ihre App bereits eine einzelne Gruppe von Anmeldeinformationen für den Zugriff auf einen nachgeschalteten Azure-Dienst verwendet, können Sie die Verbindung schnell konvertieren, um stattdessen eine App-Identität zu verwenden. Mit einer verwalteten Identität von Microsoft Entra ID kann App Service ohne geheime Schlüssel auf Ressourcen zugreifen, und Sie können den Zugriff über die rollenbasierte Zugriffssteuerung (RBAC) verwalten. Eine verwaltete Identität kann eine Verbindung mit jeder Azure-Ressource herstellen, die die Microsoft Entra-Authentifizierung unterstützt, und die Authentifizierung erfolgt mit kurzlebigen Token.
Die folgende Abbildung zeigt einen App Service beim Herstellen einer Verbindung mit anderen Azure-Diensten:
- A: Der Benutzer besucht die Azure App Service-Website.
- B: Herstellen einer sicheren Verbindung von App Service mit einem anderen Azure-Dienst mithilfe einer verwalteten Identität.
- C: Herstellen einer sicheren Verbindung von App Service mit Microsoft Graph mithilfe einer verwalteten Identität.
Die folgenden Beispiele verwenden Anwendungsgeheimnisse zum Herstellen einer Verbindung mit einer Datenbank:
- Tutorial: Verbindungsherstellung mit Azure-Datenbanken über App Service ohne Geheimnisse mithilfe einer verwalteten Identität
- Tutorial: Verbindungsherstellung mit SQL-Datenbank über App Service (.NET) ohne Geheimnisse mithilfe einer verwalteten Identität
- Tutorial: Verbindungsherstellung mit einer PostgreSQL-Datenbank aus einem Java Tomcat App Service ohne Geheimnisse mithilfe einer verwalteten Identität
Verbinden im Auftrag des angemeldeten Benutzers
Ihre App muss möglicherweise eine Verbindung mit einem nachgelagerten Dienst im Namen des angemeldeten Benutzers herstellen. Mit App Service können Sie Benutzer ganz einfach mithilfe der am häufigsten verwendeten Identitätsanbieter authentifizieren (siehe Authentifizierung und Autorisierung in Azure App Service und Azure Functions). Wenn Sie den Microsoft-Anbieter (Microsoft Entra-Authentifizierung) verwenden, können Sie den angemeldeten Benutzer an einen beliebigen nachgeschalteten Dienst senden. Zum Beispiel:
- Führen Sie eine Datenbankabfrage aus, die vertrauliche Daten zurückgibt, die der angemeldete Benutzer zum Lesen autorisiert hat.
- Rufen Sie personenbezogene Daten ab, oder ergreifen Sie Aktionen als angemeldeter Benutzer in Microsoft Graph.
Die folgende Abbildung zeigt, wie eine App sicher auf eine SQL-Datenbank im Namen des angemeldeten Benutzerkontos zugreift.
Es folgen einige gängige Szenarien:
- Verbinden mit Microsoft Graph im Auftrag des Benutzers
- Herstellen einer Verbindung mit einer SQL-Datenbank im Auftrag des Benutzers
- Herstellen einer Verbindung mit einer anderen App Service-App im Namen des Benutzers
- Ablaufen des angemeldeten Benutzers über mehrere Ebenen nachgeschalteter Dienste
Verbinden mithilfe von Geheimnissen
Es gibt zwei Methoden, die für die Verwendung von Geheimnissen in Ihrer App empfohlen werden: Geheimnisse, die in Azure Key Vault gespeichert sind, oder Geheimnisse in den Anwendungseinstellungen in App Service.
Verwenden von Geheimnissen aus dem Key Vault
Azure Key Vault kann verwendet werden, um Geheimnisse sicher zu speichern, um den Zugriff auf Geheimnisse und ihre Verwendung zu überwachen und um die Verwaltung von Anwendungsgeheimnissen zu vereinfachen. Wenn der nachgeschaltete Dienst die Microsoft Entra-Authentifizierung nicht unterstützt, oder wenn er eine Verbindungszeichenfolge oder einen Schlüssel erfordert, verwenden Sie Key Vault, um Ihre Geheimnisse zu speichern und Ihre App mithilfe von Key Vault mit einer verwalteten Identität zu verbinden und die Geheimnisse abzurufen. Ihre App kann auf die Key Vault-Geheimnisse als Key Vault-Referenzen in den App-Einstellungen zugreifen.
Mit Key Vault integrierte verwaltete Identitäten bieten unter anderem die folgenden Vorteile:
- Der Zugriff auf das Key Vault-Geheimnis ist auf die App beschränkt.
- App-Beitragende, wie z. B. Administratoren, können die vollständige Kontrolle über die App-Service-Ressourcen haben, haben aber gleichzeitig keinen Zugriff auf die Geheimnisse des Key Vault.
- Es ist keine Codeänderung erforderlich, wenn Ihr Anwendungscode bereits über die Anwendungseinstellungen auf Verbindungsgeheimnisse zugreift.
- Key Vault bietet Überwachungsfunktionen, mit denen Sie anzeigen können, wer auf Geheimnisse zugegriffen hat.
- Für die Rotation der Key Vault-Geheimnisse sind keine Änderungen im App Service erforderlich.
Die folgende Abbildung zeigt, wie der App-Dienst mithilfe einer verwalteten Identität eine Verbindung mit Key Vault herstellt und anschließend mithilfe von in Key Vault gespeicherten Geheimnissen auf einen Azure-Dienst zugreift:
Verwenden von Geheimnissen in App-Einstellungen
Für Apps, die eine Verbindung mit Diensten herstellen, die geheime Schlüssel verwenden (z. B. Benutzernamen, Kennwörter und API-Schlüssel), kann der App-Dienst sie sicher in App-Einstellungen speichern. Diese Geheimnisse werden beim App-Start als Umgebungsvariablen in Ihren Anwendungscode eingefügt. App-Einstellungen werden bei der Speicherung stets verschlüsselt (encrypted-at-rest). Für die erweiterte Verwaltung von geheimen Schlüsseln, z. B. Rotation geheimer Schlüssel, Zugriffsrichtlinien und Überwachungsverlauf wird die Nutzung von Key Vault empfohlen.
Die folgenden Beispiele verwenden Anwendungsgeheimnisse zum Herstellen einer Verbindung mit einer Datenbank:
- Tutorial: Bereitstellen einer ASP.NET Core- und Azure SQL-Datenbank-App in Azure App Service
- Tutorial: Bereitstellen einer ASP.NET-App in Azure mit Azure SQL-Datenbank
- Tutorial: Bereitstellen einer PHP-, MySQL- und Redis-App für Azure App Service
- Bereitstellen einer Node.js- und MongoDB-Web-App in Azure
- Bereitstellen einer Python-Web-App (Django oder Flask) mit PostgreSQL in Azure
- Tutorial: Erstellen einer Tomcat-Web-App mit Azure App Service für Linux und MySQL
- Tutorial: Erstellen einer Java Spring Boot-Web-App mit Azure App Service für Linux und Azure Cosmos DB
Nächste Schritte
In diesem Artikel werden folgende Themen erläutert:
- Sicheres Speichern von Geheimnissen in Azure Key Vault
- Zugreifen auf Ressourcen mithilfe einer verwalteten Identität
- Speichern von Geheimnissen mithilfe der App-Einstellungen in App Service
- Herstellen einer Verbindung mit Microsoft Graph über das Benutzerkonto
- Herstellen einer Verbindung mit einer SQL-Datenbank über das Benutzerkonto
- Herstellen einer Verbindung mit einer anderen App Service-App über das Benutzerkonto
- Herstellen eine Verbindung mit einer anderen App Service-App und daraufhin mit einem Downstreamdienst über das Benutzerkonto