Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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?).
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.
Funktionsweise
- Für JWT-Anbieter erwirbt der Client ein Token vom Identitätsanbieter.
- Der Client sendet das Token im
Authorization: Bearer <token>Header (JWT-Anbieter) oder die Plattform fügt Identitätsheader (EasyAuth/SWA) ein. - Der Daten-API-Generator überprüft das Token oder den Plattformheader (Aussteller, Zielgruppe, Signatur für JWT-Anbieter)
- 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.
Funktionsweise
- DAB weist der Anforderung basierend auf dem Token und den Headern eine Rolle zu.
- DAB sucht die Berechtigungen der Entität für diese Rolle.
- Wenn die Rolle über die Berechtigung für die angeforderte Aktion verfügt, führt DAB die Abfrage aus.
- Wenn nicht, gibt DAB eine
403 ForbiddenAntwort 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.jsonfrei 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 |