Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Data API Builder REST- és GraphQL-végpontokon keresztül teszi elérhetővé az adatokat. Az API biztonságossá tételéhez három alapvető területre van szükség: a hitelesítésre (ki hív?), az engedélyezésre (mit tehetnek?) és az átviteli biztonságra (a kapcsolat védett?).
A biztonság három pillére
| Alappillér | Megválaszolt kérdés | Kulcsfogalom |
|---|---|---|
| Authentication | Ki a hívó? | Tokenek érvényesítése identitásszolgáltatótól |
| Authorization | Mit tehetnek? | Szerepköralapú jogosultságok entitásokhoz |
| Szállítás | Biztonságos a kapcsolat? | Transport Layer Security (TLS) titkosítás az összes forgalomhoz |
A hitelesítésszolgáltató kiválasztása
A Data API Builder több hitelesítésszolgáltatót is támogat. Válassza ki az üzembe helyezési forgatókönyvnek megfelelőt:
| Szolgáltató | Felhasználási eset | Guide |
|---|---|---|
| Hitelesítés nélküli | A DAB egy megbízható felület mögött található, amely kezeli az identitást (alapértelmezett) | A hitelesítés nélküli szolgáltató konfigurálása |
Microsoft Entra-azonosító (EntraID/AzureAD) |
Éles környezetben futó alkalmazások Microsoft azonosítóval | A Microsoft Entra-hitelesítés konfigurálása |
| Egyéni JSON Web Token (JWT) | Külső identitásszolgáltatók (Okta, Auth0, Keycloak) | Egyéni JWT-hitelesítés konfigurálása |
| App Service | Az Azure App Service EasyAuth mögött futó alkalmazások (platformfejlécek) | App Service hitelesítés konfigurálása |
| Szimulátor | Helyi fejlesztés és tesztelés | Szimulátor-hitelesítés konfigurálása |
| OBO (felhasználó által delegált) | Valós felhasználói identitást igénylő SQL-adatbázisok (sorszintű biztonság, naplózás) | OBO-hitelesítés konfigurálása |
Megjegyzés:
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
Authentication
A hitelesítés ellenőrzi a hívó identitását. A Data API Builder JWT-tulajdonosi jogkivonatok (EntraID/AzureAD, Custom) vagy a platform által biztosított identitásfejlécek (AppService, StaticWebApps) hitelesítésével hitelesíti a kéréseket.
Simulator kihagyja a fejlesztés külső érvényesítését.
Hogyan működik?
- JWT-szolgáltatók esetén az ügyfél jogkivonatot szerez be az identitásszolgáltatótól
- Az ügyfél elküldi a jogkivonatot a
Authorization: Bearer <token>fejlécben (JWT-szolgáltatók) vagy a platform identitásfejléceket injektál (EasyAuth/SWA) - A Data API Builder ellenőrzi a jogkivonat vagy a platform fejlécét (kiállító, célközönség, JWT-szolgáltatók aláírása)
- A DAB kinyeri a felhasználó szerepköreit a jogkivonatból vagy az identitásfejlécből
Rövid összefoglalás
| Setting | Leírás |
|---|---|
runtime.host.authentication.provider |
A hitelesítésszolgáltató (Unauthenticated, , EntraID/AzureADCustom, AppService, ) StaticWebAppsSimulator |
runtime.host.authentication.jwt.audience |
JWT-szolgáltatók várható célközönség-jogcíme (nem használatos az AppService/StaticWebApps/Simulator/Unauthenticated esetében) |
runtime.host.authentication.jwt.issuer |
Az elvárt kiállító/hatóság JWT-szolgáltatók számára (nem használja: AppService/StaticWebApps/Simulator/Unauthenticated) |
A szolgáltatóspecifikus konfigurációról az ebben a szakaszban található hitelesítési útmutatókban olvashat.
Engedélyezés
Az engedélyezés határozza meg, hogy egy hitelesített (vagy névtelen) felhasználó mire képes. A Data API Builder szerepköralapú hozzáférés-vezérléssel (RBAC) korlátozza az entitásokhoz és műveletekhez való hozzáférést.
Hogyan működik?
- A DAB a jogkivonat és a fejlécek alapján szerepkört rendel a kéréshez
- A DAB megkeresi az entitás engedélyeit a szerepkörhöz
- Ha a szerepkör rendelkezik engedéllyel a kért művelethez, a DAB végrehajtja a lekérdezést
- Ha nem, a DAB visszajelez
403 Forbidden
Rendszerszerepkörök és felhasználói szerepkörök
| Szerepkör típusa | Leírás |
|---|---|
Anonymous |
Hozzárendelve, ha nincs hitelesített identitás |
Authenticated |
A kérelem hitelesítésekor (JWT elfogadott vagy megbízható platformfejléc) van hozzárendelve, és nincs kiválasztva konkrét felhasználói szerepkör |
| Felhasználói szerepkörök | Egyéni szerepkörök a roles jogkivonat jogcíméből (vagy platformszerepkörökből), kiválasztva a X-MS-API-ROLE fejlécen keresztül |
Alapértelmezés szerint biztonságos
Az entitások alapértelmezés szerint nem rendelkeznek engedélyekkel. A hozzáférést explicit módon kell megadnia:
{
"entities": {
"Book": {
"permissions": [
{ "role": "authenticated", "actions": ["read"] }
]
}
}
}
A részletes konfigurációért tekintse meg az engedélyezés áttekintését.
Sorszintű és mezőszintű biztonság
Lépje túl az entitásszintű engedélyeket a részletes hozzáférés-vezérléssel:
| Funkció | Leírás | Guide |
|---|---|---|
| Adatbázis-szabályzatok (sorszintű biztonság) | Szabályzatkifejezések fordítása olyan lekérdezési predikátumokra, amelyek jogcímek vagy munkamenet-környezet alapján szűrik a sorokat | Sorszintű biztonság megvalósítása |
| Mezőszintű biztonság | Adott oszlopok belefoglalása vagy kizárása szerepkörenként | Mezőhozzáférés |
| Valaki nevében (OBO) | Cserélje le a bejövő felhasználói jogkivonatot egy alsóbb rétegbeli SQL-jogkivonatra, hogy az adatbázis tényleges hívó felhasználóként hitelesítse magát (csak mssql esetén) | Felhasználó által delegált hitelesítés |
Szerepköröröklés
A DAB 2.0 szerepköröröklést vezet be az entitásengedélyekhez. Az öröklési lánc az named-role → authenticated → anonymous. Ha egy szerepkör nincs explicit módon konfigurálva egy entitáshoz, akkor a következő szélesebb szerepkörtől örököl. Egyszer állítsa be az engedélyeket a anonymous-n, és minden szélesebb szerepkör ugyanazt a hozzáférést kapja. További részletekért lásd a szerepköröröklést.
Átviteli és konfigurációs biztonság
Átviteli biztonság
- TLS használata minden kapcsolathoz: Az ügyfelek és a DAB közötti forgalom titkosítása
- Régebbi TLS-verziók letiltása: Csak a TLS 1.2+-ra támaszkodhat
- HTTPS-végpontok használata: Soha ne tegye közzé a DAB-t titkosítatlan HTTP-en keresztül éles környezetben
További részletekért tekintse meg a biztonsági ajánlott eljárásokat.
Konfigurációs biztonság
-
Titkos kódok tárolása környezeti változókban: Használat
@env('SECRET_NAME')a konfigurációban -
Az Azure Key Vault használata: Titkos kulcsok hivatkozása a következővel:
@azure('key-vault-uri') - Soha ne köteleződjön el titkos adatokkal: Tartsa -t jelszavak és kapcsolati karakterláncok nélkül
{
"data-source": {
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
}
Figyelés és frissítések
- Hozzáférés monitorozása: Az Application Insights használatával nyomon követheti a kéréseket és észlelheti a rendellenességeket
- Naplók áttekintése: Sikertelen hitelesítési kísérletek és engedélymegtagadások ellenőrzése
- A DAB frissítése: Biztonsági javítások alkalmazása a legújabb verzióra való frissítéssel
Rövid útmutatók
| tevékenység | Guide |
|---|---|
| Megbízható előtér használata JWT-ellenőrzés nélkül a DAB-ban | A hitelesítés nélküli szolgáltató konfigurálása |
| Microsoft Entra ID hitelesítés beállítása | A Microsoft Entra-hitelesítés konfigurálása |
| Az Okta vagy az Auth0 használata | Egyéni JWT-hitelesítés konfigurálása |
| Azure App Service mögött futtatni | App Service hitelesítés konfigurálása |
| Engedélyek helyi tesztelése | Szimulátor-hitelesítés konfigurálása |
| Sorok korlátozása felhasználó szerint | Sorszintű biztonság megvalósítása |
| A szerepkör-hozzárendelés ismertetése | Engedélyezés áttekintése |