Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Data-API-byggare exponerar dina data via REST- och GraphQL-slutpunkter. För att skydda API:et krävs tre kärnområden: autentisering (vem anropar?), auktorisering (vad kan de göra?) och transportsäkerhet (är anslutningen skyddad?).
Tre grundpelare för säkerhet
| Grundpelare | Frågan den besvarar | Nyckelbegrepp |
|---|---|---|
| autentisering | Vem är uppringaren? | Verifiera token från en identitetsprovider |
| Behörighet | Vad kan de göra? | Rollbaserade behörigheter för entiteter |
| Transport | Är anslutningen säker? | TLS-kryptering (Transport Layer Security) för all trafik |
Välj din autentiseringsprovider
Data API Builder stöder flera autentiseringsproviders. Välj den som matchar distributionsscenariot:
| Leverantör | Användningsfall | Guide |
|---|---|---|
| Oautentiserad | DAB sitter bakom en betrodd klientdel som hanterar identitet (som standard) | Konfigurera den oautentiserade leverantören |
Microsoft Entra-ID (EntraID/AzureAD) |
Produktionsappar med Microsoft-identitet | Konfigurera Microsoft Entra-autentisering |
| Anpassad JSON-webbtoken (JWT) | Ip-adresser från tredje part (Okta, Auth0, Keycloak) | Konfigurera anpassad JWT-autentisering |
| App Service | Appar som körs bakom Azure App Service EasyAuth (plattformens huvuden) | Konfigurera App Service-autentisering |
| Simulator | Lokal utveckling och testning | Konfigurera simulatorautentisering |
| OBO (användardelegering) | SQL-databaser som kräver den verkliga användaridentiteten (säkerhet på radnivå, granskning) | Konfigurera OBO-autentisering |
Anmärkning
Funktionerna i Data API Builder 2.0 som beskrivs i det här avsnittet är för närvarande i förhandsversion och kan komma att ändras före allmän tillgänglighet. Mer information finns i Nyheter i version 2.0.
Authentication
Autentisering verifierar anroparens identitet. Data API Builder autentiserar begäranden genom att antingen validera JWT-ägartoken (EntraID/AzureAD, Custom) eller lita på identitetshuvuden som tillhandahålls av plattformen (AppService, ). StaticWebApps
Simulator hoppar över extern validering för utveckling.
Så här fungerar det
- För JWT-leverantörer hämtar klienten en token från identitetsprovidern
- Klienten skickar token i
Authorization: Bearer <token>huvudena (JWT-leverantörer) eller plattformen infogar identitetsrubriker (EasyAuth/SWA) - Data-API-byggare verifierar token- eller plattformshuvudet (utfärdare, målgrupp, signatur för JWT-leverantörer)
- DAB extraherar användarens roller från token- eller identitetsrubriken
Snabbreferens
| Inställning | Beskrivning |
|---|---|
runtime.host.authentication.provider |
Autentiseringsprovidern (Unauthenticated, EntraID/AzureAD, Custom, AppService, StaticWebApps, ) Simulator |
runtime.host.authentication.jwt.audience |
Förväntat målgruppsanspråk för JWT-leverantörer (används inte av AppService/StaticWebApps/Simulator/Unauthenticated) |
runtime.host.authentication.jwt.issuer |
Förväntad utfärdare/myndighet för JWT-leverantörer (används inte av AppService/StaticWebApps/Simulator/Unauthenticated) |
För providerspecifik konfiguration, se autentiseringsguiderna i det här avsnittet.
Authorization
Auktorisering avgör vad en autentiserad (eller anonym) användare kan göra. Data API Builder använder rollbaserad åtkomstkontroll (RBAC) för att begränsa åtkomsten till entiteter och åtgärder.
Så här fungerar det
- DAB tilldelar en roll till begäran baserat på token och rubriker
- DAB söker efter entitetens behörigheter för den rollen
- Om rollen har behörighet för den begärda åtgärden kör DAB frågan
- Annars returnerar DAB ett
403 Forbiddensvar
Systemroller jämfört med användarroller
| Rolltyp | Beskrivning |
|---|---|
Anonymous |
Tilldelad när ingen autentiserad identitet finns |
Authenticated |
Tilldelad när en begäran autentiseras (JWT-godkänt eller betrott plattformshuvud) och ingen specifik användarroll har valts |
| Användarroller | Anpassade roller från tokenens roles krav (eller plattformsroller) som valts via X-MS-API-ROLE header |
Säker som standard
Entiteter har inga behörigheter som standard. Du måste uttryckligen bevilja åtkomst:
{
"entities": {
"Book": {
"permissions": [
{ "role": "authenticated", "actions": ["read"] }
]
}
}
}
Detaljerad konfiguration finns i Översikt över auktorisering.
Säkerhet på radnivå och fältnivå
Gå längre än behörigheter på entitetsnivå med detaljerad åtkomstkontroll:
| Funktion | Beskrivning | Guide |
|---|---|---|
| Databasprinciper (säkerhet på radnivå) | Översätta principuttryck till frågepredikat som filtrerar rader baserat på anspråk eller sessionskontext | Implementera säkerhet på radnivå |
| Säkerhet på fältnivå | Inkludera eller exkludera specifika kolumner per roll | Fältåtkomst |
| På uppdrag av (OBO) | Byt ut den inkommande användartoken mot en underordnad SQL-token så att databasen autentiseras som den faktiska anropande användaren (endast mssql) | Användardelegerad autentisering |
Arv av roll
DAB 2.0 introducerar rollbaserad arvshantering för entitetsbehörigheter. Arvskedjan är named-role → authenticated → anonymous. Om en roll inte uttryckligen har konfigurerats för en entitet ärver den från nästa bredare roll. Definiera behörigheter en gång på anonymous, så får varje bredare roll samma åtkomst. Mer information finns i Rollärvning.
Transport- och konfigurationssäkerhet
Transportsäkerhet
- Använd TLS för alla anslutningar: Kryptera trafik mellan klienter och DAB
- Inaktivera äldre TLS-versioner: Förlita dig endast på TLS 1.2+
- Använd HTTPS-slutpunkter: Exponera aldrig DAB över okrypterad HTTP i produktion
Mer information finns i Metodtips för säkerhet.
Konfigurationssäkerhet
-
Lagra hemligheter i miljövariabler: Använd
@env('SECRET_NAME')i konfigurationen -
Använd Azure Key Vault: Referera till hemligheter med
@azure('key-vault-uri') -
Checka aldrig in hemligheter: Håll dig
dab-config.jsonfri från lösenord och anslutningssträngar
{
"data-source": {
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
}
Övervakning och uppdateringar
- Övervaka åtkomst: Använd Application Insights för att spåra begäranden och identifiera avvikelser
- Granska loggar: Sök efter misslyckade autentiseringsförsök och behörighetsnekanden
- Håll DAB uppdaterat: Tillämpa säkerhetskorrigeringar genom att uppgradera till den senaste versionen
Snabbstartsguider
| Uppgift | Guide |
|---|---|
| Använda en betrodd klientdel utan JWT-validering i DAB | Konfigurera den oautentiserade leverantören |
| Konfigurera Microsoft Entra ID-autentisering | Konfigurera Microsoft Entra-autentisering |
| Använd Okta eller Auth0 | Konfigurera anpassad JWT-autentisering |
| Drivs bakom Azure App Service | Konfigurera App Service-autentisering |
| Testa behörigheter lokalt | Konfigurera simulatorautentisering |
| Begränsa rader efter användare | Implementera säkerhet på radnivå |
| Förstå rolltilldelning | Översikt över auktorisering |