Freigeben über


Sichere Konnektivität mit Azure Diensten und Datenbanken von Azure App Service

Möglicherweise muss Ihr App-Dienst 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, beginnt Ihre App möglicherweise mit geheimen Verbindungen, und Der App-Dienst ermöglicht es Ihnen, geheime Schlüssel sicher zu halten. Azure können jedoch dazu beitragen, die Back-End-Konnektivität Ihrer App durch Microsoft Entra Authentifizierung zu sichern, wodurch geheime Schlüssel in Ihrer App vollständig beseitigt werden.

Verbindungsmethode Wann verwenden
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 Authentifizierung mit Microsoft Entra, wie beispielsweise 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 nachgelagerte 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 Verbindungsgeheimnisse erforderlich.
* Ihre App stellt eine Verbindung mit Nicht-Azure-Diensten wie einem lokalen Datenbankserver bereit.
* Der nachgeschaltete Azure-Dienst unterstützt noch keine Microsoft Entra Authentifizierung.

Verbindung mit einer App-Identität herstellen

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. Eine verwaltete Identität aus Microsoft Entra ID ermöglicht es App Service, auf Ressourcen ohne geheime Schlüssel zuzugreifen, und Sie können den Zugriff mit rollenbasierter Zugriffssteuerung (RBAC) verwalten. Eine verwaltete Identität kann eine Verbindung mit einer beliebigen Azure Ressource herstellen, die Microsoft Entra Authentifizierung unterstützt, und die Authentifizierung erfolgt mit kurzlebigen Token.

Die folgende Abbildung zeigt, wie ein App-Dienst eine Verbindung mit anderen Azure-Diensten herstellt:

  • A: Der Benutzer besucht Azure App-Dienstwebsite.
  • B: Sichere Verbindung von App Service zu einem anderen Azure-Dienst mithilfe einer verwalteten Identität.
  • C: Stellen Sie sicher, dass Sie mit App Service zu Microsoft Graph eine Verbindung mithilfe einer verwalteten Identität herstellen.

Diagramm: Verwaltete Identität, die mit oder ohne Identität des Benutzers auf eine Ressource zugreift

Die folgenden Beispiele verwenden Anwendungsgeheimnisse zum Herstellen einer Verbindung mit einer Datenbank:

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 mit den am häufigsten verwendeten Identitätsanbietern auf einfache Weise authentifizieren (siehe Authentication 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 zu lesen berechtigt ist.
  • 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.

Architekturdiagramm für das tutorial szenario.

Es folgen einige gängige Szenarien:

Verbinden mithilfe von Geheimnissen

Es gibt zwei empfohlene Methoden zum Verwenden von geheimen Schlüsseln in Ihrer App: Verwenden von geheimen Schlüsseln, die in Azure Key Vault oder geheimen Schlüsseln in den App-Einstellungen von App Service gespeichert sind.

Verwenden von geheimen Schlüsseln aus Key Vault

Azure Key Vault kann verwendet werden, um geheime Schlüssel sicher zu speichern, den Zugriff und die Verwendung geheimer Schlüssel zu überwachen und die Verwaltung von Anwendungsgeheimnissen zu vereinfachen. Wenn der nachgeschaltete Dienst die Microsoft Entra-Authentifizierung nicht unterstützt oder eine Verbindungszeichenfolge oder einen Schlüssel erfordert, verwenden Sie Key Vault, um Ihre Geheimnisse zu speichern. Stellen Sie Ihre App mit einer verwalteten Identität eine Verbindung zu Key Vault her und rufen Sie die Geheimnisse ab. Ihre App kann auf die Geheimnisse des Key Vault als Key Vault Verweise in den App-Einstellungen zugreifen.

Zu den Vorteilen verwalteter Identitäten, die in Key Vault integriert sind, gehören:

  • 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 Überwachung und Überprüfung, 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 App Service eine Verbindung mit Key Vault mithilfe einer verwalteten Identität herstellt und dann auf einen Azure Dienst zugreift, der geheime Schlüssel verwendet, die in Key Vault gespeichert sind:

Diagramm, in dem der App-Dienst mithilfe eines geheimen Schlüssels angezeigt wird, der in Key Vault gespeichert ist und mit verwalteter Identität verwaltet wird, um eine Verbindung mit Foundry Tools herzustellen.

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 (verschlüsselt im Ruhezustand). Für eine fortschrittlichere Verwaltung von Secrets, wie zum Beispiel die Rotation von Secrets, Zugriffsrichtlinien und Protokollierungshistorie, versuchen Sie, Key Vault zu verwenden.

Die folgenden Beispiele verwenden Anwendungsgeheimnisse zum Herstellen einer Verbindung mit einer Datenbank: