Freigeben über


Sichern Ihrer Daten-API-Generator-Lösung

Der Daten-API-Generator macht Ihre Daten über REST- und GraphQL-Endpunkte verfügbar. Für die Sicherung Ihrer API sind drei Kernbereiche erforderlich: Authentifizierung (wer ruft?), Autorisierung (was kann sie tun?) und Transportsicherheit (ist die Verbindung geschützt?).

Abbildung des End-to-End-Anforderungsflusses mit Authentifizierung, Autorisierung und Datenbankzugriff.

Drei Säulen der Sicherheit

Säule Beantwortete Frage Schlüsselkonzept
Authentifizierung Wer ist der Anrufer? Validierung von Tokens eines Identitätsanbieters
Autorisierung Was können sie tun? Rollenbasierte Berechtigungen für Entitäten
Transport Ist die Verbindung sicher? TLS-Verschlüsselung für den gesamten Datenverkehr

Auswählen Ihres Authentifizierungsanbieters

Der Daten-API-Generator unterstützt mehrere Authentifizierungsanbieter. Wählen Sie das Szenario aus, das Ihrem Bereitstellungsszenario entspricht:

Provider Anwendungsfall Guide
Microsoft Entra-ID (EntraID/AzureAD) Produktions-Apps mit Microsoft Identity Konfigurieren der Entra-Authentifizierung
Benutzerdefiniertes JWT IdPs von Drittanbietern (Okta, Auth0, Keycloak) Konfigurieren der benutzerdefinierten JWT-Authentifizierung
App-Dienst Apps, die mit Azure App Service EasyAuth (Plattform-Header) betrieben werden Konfigurieren der App Service-Authentifizierung
Simulator Lokale Entwicklung und Tests Konfigurieren der Simulatorauthentifizierung
Statische Web-Apps Apps, die durch SWA-Authentifizierungsheader geschützt werden Konfigurieren der App Service-Authentifizierung

Tipp

Beginnen Sie während der Entwicklung mit dem Simulatoranbieter , um Berechtigungen zu testen, ohne einen Identitätsanbieter zu konfigurieren. Wechseln Sie vor der Bereitstellung zu einem Produktionsanbieter.

Authentifizierung

Die Authentifizierung überprüft die Identität des Anrufers. Der Data API-Builder authentifiziert Anforderungen entweder durch das Validieren von JWT-Bearer-Token (EntraID/AzureAD, Custom) oder durch Vertrauen in von der Plattform bereitgestellte Identitätsheader (AppService, StaticWebApps). Simulator überspringt die externe Überprüfung für die Entwicklung.

Abbildung der Authentifizierung von Clients beim Daten-API-Generator mithilfe von JWT-Token.

Funktionsweise

  1. Für JWT-Anbieter erwirbt der Client ein Token vom Identitätsanbieter.
  2. Der Client sendet das Token im Authorization: Bearer <token> Header (JWT-Anbieter) oder die Plattform fügt Identitätsheader (EasyAuth/SWA) ein.
  3. Der Daten-API-Generator überprüft das Token oder den Plattformheader (Aussteller, Zielgruppe, Signatur für JWT-Anbieter)
  4. DAB extrahiert die Rollen des Benutzers aus dem Token- oder Identitätsheader.

Kurzreferenz

Setting Description
runtime.host.authentication.provider Der Authentifizierungsanbieter (EntraID/AzureAD, Custom, AppService, StaticWebApps, ) Simulator
runtime.host.authentication.jwt.audience Erwarteter Zielgruppenanspruch für JWT-Anbieter (nicht von AppService/StaticWebApps/Simulator verwendet)
runtime.host.authentication.jwt.issuer Erwarteter Aussteller/Autorität für JWT-Anbieter (nicht von AppService/StaticWebApps/Simulator verwendet)

Ausführliche Konfiguration finden Sie unter Konfigurieren der Microsoft Entra ID-Authentifizierung.

Autorisierung

Die Autorisierung bestimmt, was ein authentifizierter (oder anonymer) Benutzer tun kann. Der Daten-API-Generator verwendet rollenbasierte Zugriffssteuerung (RBAC), um den Zugriff auf Entitäten und Aktionen einzuschränken.

Abbildung, wie der Daten-API-Generator eine Rolle auswählt und Berechtigungen für eine Anforderung auswertet.

Funktionsweise

  1. DAB weist der Anforderung basierend auf dem Token und den Headern eine Rolle zu.
  2. DAB sucht die Berechtigungen der Entität für diese Rolle.
  3. Wenn die Rolle über die Berechtigung für die angeforderte Aktion verfügt, führt DAB die Abfrage aus.
  4. Wenn nicht, gibt DAB eine 403 Forbidden Antwort zurück.

Systemrollen im Vergleich zu Benutzerrollen

Rollentyp Description
Anonymous Zugewiesen, wenn keine authentifizierte Identität vorhanden ist
Authenticated Zugewiesen, wenn eine Anforderung authentifiziert wird (JWT akzeptiert oder vertrauenswürdiger Plattformheader) und keine bestimmte Benutzerrolle ausgewählt ist
Benutzerrollen Benutzerdefinierte Rollen aus dem Claim des roles Tokens (oder Plattformrollen), ausgewählt via X-MS-API-ROLE Header

Standardmäßig sicher

Entitäten besitzen standardmäßig keine Berechtigungen. Sie müssen explizit Zugriff gewähren:

{
  "entities": {
    "Book": {
      "permissions": [
        { "role": "authenticated", "actions": ["read"] }
      ]
    }
  }
}

Ausführliche Konfiguration finden Sie unter Autorisierung und Rollen.

Sicherheit auf Zeilenebene und Feldebene

Gehen Sie über Berechtigungen auf Entitätsebene hinaus und setzen Sie eine fein abgestimmte Zugriffskontrolle ein.

Merkmal Description Guide
Datenbankrichtlinien (Sicherheit auf Zeilenebene) Übersetzen von Richtlinienausdrücken in Abfrage-Prädikate, die Zeilen basierend auf Ansprüchen oder Sitzungskontext filtern Implementieren der Sicherheit auf Zeilenebene
Sicherheit auf Feldebene Einschließen oder Ausschließen bestimmter Spalten pro Rolle Feldzugriff

Transport- und Konfigurationssicherheit

Transportsicherheit

  • Verwenden von TLS für alle Verbindungen: Verschlüsseln des Datenverkehrs zwischen Clients und DAB
  • Deaktivieren sie ältere TLS-Versionen: Verlassen Sie sich nur auf TLS 1.2+
  • Verwenden von HTTPS-Endpunkten: Nie DAB über unverschlüsselte HTTP in der Produktion verfügbar machen

Ausführliche Informationen finden Sie unter "Bewährte Methoden zur Sicherheit".

Konfigurationssicherheit

  • Speichern geheimer Schlüssel in Umgebungsvariablen: Verwenden @env('SECRET_NAME') in Ihrer Konfiguration
  • Verwenden von Azure Key Vault: Verweisen auf geheime Schlüssel mit @azure('key-vault-uri')
  • Niemals Geheimnisse einpflegen: Halten Sie dab-config.json frei von Kennwörtern und Verbindungscodes
{
  "data-source": {
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

Überwachung und Updates

  • Überwachen des Zugriffs: Verwenden von Application Insights zum Nachverfolgen von Anforderungen und Erkennen von Anomalien
  • Überprüfen von Protokollen: Überprüfen auf fehlgeschlagene Authentifizierungsversuche und Berechtigungsverweigerungen
  • Aktualisieren von DAB: Anwenden von Sicherheitspatches durch Upgrade auf die neueste Version

Schnellstartanleitungen

Aufgabe Guide
Einrichten der Microsoft Entra ID-Authentifizierung Konfigurieren der Entra-Authentifizierung
Verwenden Sie Okta oder Auth0 Konfigurieren der benutzerdefinierten JWT-Authentifizierung
Betrieb hinter Azure App Service Konfigurieren der App Service-Authentifizierung
Lokales Testen von Berechtigungen Konfigurieren der Simulatorauthentifizierung
Zeilen nach Benutzer einschränken Implementieren der Sicherheit auf Zeilenebene
Verstehen der Rollenzuweisung Autorisierung und Rollen