Delen via


Uw Data API Builder-oplossing beveiligen

Data API Builder toont uw gegevens via REST- en GraphQL-eindpunten. Voor het beveiligen van uw API is aandacht vereist voor drie kerngebieden: verificatie (wie roept?), autorisatie (wat kunnen ze doen?) en transportbeveiliging (is de verbinding beveiligd?).

Afbeelding van de end-to-end aanvraagstroom met verificatie, autorisatie en databasetoegang.

Drie pijlers van beveiliging

Pilaar Vraag die het beantwoordt Belangrijk concept
Authentication Wie is de beller? Tokens van een id-provider valideren
Authorization Wat kunnen ze doen? Machtigingen op basis van rollen voor entiteiten
Vervoer Is de verbinding beveiligd? TLS-versleuteling voor al het verkeer

Uw verificatieprovider kiezen

Data API Builder ondersteunt meerdere verificatieproviders. Kies het scenario dat overeenkomt met uw implementatiescenario:

Provider Gebruiksituatie Guide
Microsoft Entra-id (EntraID/AzureAD) Productie-apps met microsoft-identiteit Entra-verificatie configureren
Aangepaste JWT Identiteitsproviders van derden (IdPs) (Okta, Auth0, Keycloak) Aangepaste JWT-verificatie configureren
App Service- Apps die worden uitgevoerd achter Azure App Service EasyAuth (Platformheaders) App Service-verificatie configureren
Simulator Lokale ontwikkeling en testen Simulatorverificatie configureren
Statische web-apps Apps die worden beveiligd met SWA-verificatieheaders App Service-verificatie configureren

Aanbeveling

Begin met de Simulator-provider tijdens de ontwikkeling om machtigingen te testen zonder een id-provider te configureren. Schakel over naar een productieprovider voordat u implementeert.

Authenticatie

Verificatie verifieert de identiteit van de beller. Data API Builder verifieert aanvragen door JWT bearer-tokens (EntraID/AzureAD, Custom) te valideren of door platform geleverde identiteitsheaders (AppService, StaticWebApps) te vertrouwen. Simulator slaat externe validatie voor ontwikkeling over.

Afbeelding van hoe clients worden geverifieerd bij Data API Builder met behulp van JWT-tokens.

Hoe het werkt

  1. Voor JWT-providers verkrijgt de client een token van de id-provider
  2. De client verzendt het token in de Authorization: Bearer <token> header (JWT-providers) of het platform injecteert identiteitsheaders (EasyAuth/SWA)
  3. Data API Builder valideert het token of de platformheader (uitgever, doelgroep, handtekening voor JWT-providers)
  4. DAB extraheert de rollen van de gebruiker uit het token of de identiteitsheader

Snelzoekgids

Configuratie Description
runtime.host.authentication.provider De verificatieprovider (EntraID/AzureAD, Custom, AppService, StaticWebApps, Simulator)
runtime.host.authentication.jwt.audience Verwachte doelgroepclaim voor JWT-providers (niet gebruikt door AppService/StaticWebApps/Simulator)
runtime.host.authentication.jwt.issuer Verwachte uitgever/instantie voor JWT-providers (niet gebruikt door AppService/StaticWebApps/Simulator)

Zie Microsoft Entra ID-verificatie configureren voor gedetailleerde configuratie.

Autorisatie

Autorisatie bepaalt wat een geverifieerde (of anonieme) gebruiker kan doen. Data API Builder maakt gebruik van op rollen gebaseerd toegangsbeheer (RBAC) om de toegang tot entiteiten en acties te beperken.

Afbeelding van hoe Data API Builder een rol selecteert en machtigingen voor een aanvraag evalueert.

Hoe het werkt

  1. DAB wijst een rol toe aan de aanvraag op basis van het token en headers
  2. DAB zoekt de machtigingen van de entiteit op voor die rol
  3. Als de rol is gemachtigd voor de aangevraagde actie, voert DAB de query uit
  4. Als dat niet het geval is, retourneert DAB een 403 Forbidden antwoord

Systeemrollen versus gebruikersrollen

Roltype Description
Anonymous Toegewezen wanneer er geen geverifieerde identiteit aanwezig is
Authenticated Toegewezen wanneer een aanvraag wordt geverifieerd (JWT geaccepteerd of vertrouwd platformheader) en er geen specifieke gebruikersrol is geselecteerd
Gebruikersrollen Aangepaste rollen uit de roles-claim van het token (of platformrollen), geselecteerd via de X-MS-API-ROLE-koptekst

Standaard beveiligd

Entiteiten hebben standaard geen machtigingen. U moet expliciet toegang verlenen:

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

Zie Autorisatie en rollen voor gedetailleerde configuratie.

Beveiliging op rij- en veldniveau

Ga verder dan machtigingen op entiteitsniveau met gedetailleerd toegangsbeheer:

Eigenschap Description Guide
Databasebeleid (beveiliging op rijniveau) Beleiduitdrukkingen vertalen naar querypredicaten die rijen filteren op basis van claims of sessiecontext. Beveiliging op rijniveau implementeren
Beveiliging op veldniveau Specifieke kolommen per rol opnemen of uitsluiten Veldtoegang

Transport- en configuratiebeveiliging

Transportbeveiliging

  • TLS gebruiken voor alle verbindingen: Verkeer tussen clients en DAB versleutelen
  • Verouderde TLS-versies uitschakelen: alleen afhankelijk van TLS 1.2+
  • HTTPS-eindpunten gebruiken: DAB nooit beschikbaar maken via niet-versleutelde HTTP in productie

Zie best practices voor beveiliging voor meer informatie.

Configuratiebeveiliging

  • Geheimen opslaan in omgevingsvariabelen: Gebruiken @env('SECRET_NAME') in uw configuratie
  • Azure Key Vault gebruiken: referentiegeheimen met @azure('key-vault-uri')
  • Nooit geheimen doorvoeren: dab-config.json wachtwoorden en verbindingsreeksen vrijhouden
{
  "data-source": {
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

Bewaking en updates

  • Toegang bewaken: Application Insights gebruiken om aanvragen bij te houden en afwijkingen te detecteren
  • Logboeken controleren: Nakijken op mislukte verificatiepogingen en machtigingsweigeringen
  • DAB bijgewerkt houden: beveiligingspatches toepassen door een upgrade uit te voeren naar de nieuwste versie

Snelstarthandleidingen

Opdracht Guide
Microsoft Entra ID-verificatie instellen Entra-verificatie configureren
Okta of Auth0 gebruiken Aangepaste JWT-verificatie configureren
Uitvoeren achter Azure App Service App Service-verificatie configureren
Machtigingen lokaal testen Simulatorverificatie configureren
Rijen per gebruiker beperken Beveiliging op rijniveau implementeren
Inzicht in roltoewijzing Autorisatie en rollen