Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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?).
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.
Hoe het werkt
- Voor JWT-providers verkrijgt de client een token van de id-provider
- De client verzendt het token in de
Authorization: Bearer <token>header (JWT-providers) of het platform injecteert identiteitsheaders (EasyAuth/SWA) - Data API Builder valideert het token of de platformheader (uitgever, doelgroep, handtekening voor JWT-providers)
- 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.
Hoe het werkt
- DAB wijst een rol toe aan de aanvraag op basis van het token en headers
- DAB zoekt de machtigingen van de entiteit op voor die rol
- Als de rol is gemachtigd voor de aangevraagde actie, voert DAB de query uit
- Als dat niet het geval is, retourneert DAB een
403 Forbiddenantwoord
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.jsonwachtwoorden 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 |