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 szimulátorhitelesítési szolgáltató lehetővé teszi a szerepköralapú engedélyek helyi tesztelését identitásszolgáltató konfigurálása nélkül. Használja a fejlesztés során annak ellenőrzéséhez, hogy az engedélyszabályok megfelelően működnek-e az éles környezetben való üzembe helyezés előtt.
Helyi hitelesítésszolgáltató kiválasztása
A fejlesztés során éles környezetben működő identitásszolgáltató konfigurálása nélkül is tesztelheti a hitelesítést és az engedélyezést.
| Szolgáltató | A következőkre alkalmas | Jegyzetek |
|---|---|---|
| Szimulátor | Gyors engedélytesztelés | Csak fejlesztési célokra. Minden kérést hitelesítettként kezel. Alapértelmezett a Authenticated szerepkör, illetve felülírható a X-MS-API-ROLE segítségével. |
| AppService | Jogcímalapú tesztelés | Helyileg szimulálja az EasyAuth-ot egyéni jogcímekkel történő X-MS-CLIENT-PRINCIPAL küldéssel. További részletekért lásd: App Service-hitelesítés konfigurálása. |
Hitelesítési folyamat
A szimulátorszolgáltató az összes kérést hitelesítettként kezeli, így az engedélyezési szabályok tesztelésére összpontosíthat:
| Phase | Mi történik? |
|---|---|
| Megérkezik a kérés | A fejlesztő HTTP-kérést küld a DAB-nak |
| Szerep hozzárendelés | A DAB hozzárendeli Authenticated (alapértelmezett) vagy a szerepkört a fejlécből X-MS-API-ROLE |
| Engedélyek ellenőrzése | A DAB kiértékeli a kérést az adott szerepkörhöz tartozó entitás engedélyei alapján |
| Lekérdezés végrehajtása | Ha engedélyezve van, a DAB lekérdezi az adatbázist, és visszaadja az eredményeket |
Fontos
A szimulátor-szolgáltató csak fejlesztésre használható. Soha ne használja éles környezetben – megkerüli az összes valódi hitelesítést.
Előfeltételek
- Telepített Data API Builder CLI (telepítési útmutató)
- Legalább egy entitással rendelkező meglévő
dab-config.json
Rövid összefoglalás
| Setting | Érték |
|---|---|
| Szolgáltató | Simulator |
| Host üzemmód |
development (kötelező) |
| Alapértelmezett szerepkör |
Authenticated (automatikusan beszúrva) |
| Szerepkör-felülbírálás fejléce | X-MS-API-ROLE |
| Hozzáférési token szükséges | No |
| Követelések támogatása | Korlátozott (csak rendszerszerepkörök Anonymous/Authenticated ; tetszőleges jogcímek nélkül) |
1. lépés: A szimulátor-szolgáltató konfigurálása
Állítsa a hitelesítési szolgáltatót szimulátorra, és győződjön meg arról, hogy a fejlesztési mód engedélyezve van.
parancssori felület
# Enable development mode
dab configure \
--runtime.host.mode development
# Set the Simulator provider
dab configure \
--runtime.host.authentication.provider Simulator
Az eredményként kapott konfiguráció
{
"runtime": {
"host": {
"mode": "development",
"authentication": {
"provider": "Simulator"
}
}
}
}
Megjegyzés:
A szimulátorszolgáltató csak akkor működik, ha a mode be van állítva development értékre. Éles módban a DAB elutasítja a szimulátor-szolgáltatót, és nem indul el.
2. lépés: Entitásengedélyek konfigurálása
Adja meg a tesztelni kívánt szerepkörök engedélyeit. Tesztelheti a rendszerszerepköröket (Anonymous, Authenticated) és az egyéni szerepköröket.
Példa: Több szerepkör
# Allow anonymous read access
dab update Book \
--permissions "Anonymous:read"
# Allow authenticated users full read access
dab update Book \
--permissions "Authenticated:read"
# Allow authors to create and update
dab update Book \
--permissions "author:create,read,update"
# Allow admins full access
dab update Book \
--permissions "admin:*"
Az eredményként kapott konfiguráció
{
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "Anonymous",
"actions": ["read"]
},
{
"role": "Authenticated",
"actions": ["read"]
},
{
"role": "author",
"actions": ["create", "read", "update"]
},
{
"role": "admin",
"actions": ["*"]
}
]
}
}
}
3. lépés: Különböző szerepkörök tesztelése
Indítsa el a Data API Buildert, és küldjön kéréseket az egyes szerepkörök teszteléséhez.
dab start
Tesztelés hitelesítettként (alapértelmezett)
Speciális fejlécek nélkül a kérések a(z) Authenticated szerepkör szerint lesznek kiértékelve.
curl -X GET "http://localhost:5000/api/Book"
Tesztelés névtelenként
A X-MS-API-ROLE fejléc használatával teszteljen Anonymous-ként:
curl -X GET "http://localhost:5000/api/Book" \
-H "X-MS-API-ROLE: Anonymous"
Egyéni szerepkör tesztelése
A X-MS-API-ROLE fejléc használatával tesztelje bármely egyéni szerepkört:
curl -X GET "http://localhost:5000/api/Book" \
-H "X-MS-API-ROLE: author"
Megjegyzés:
A szimulátorral az egyéni szerepkörtesztelés azért működik, mert a DAB a fejlécérték alapján értékeli ki az X-MS-API-ROLE engedélyeket. A rendszerszerepkörök (Anonymous, Authenticated) mindig elérhetők. Ha egy egyéni szerepkör-kérelem 403-at ad vissza, ellenőrizze, hogy a szerepkör neve pontosan megfelel-e az entitás engedélyeinek.
Megtagadandó művelet tesztelése
Próbálkozzon olyan műveletpel, amelyhez a szerepkör nem rendelkezik engedéllyel:
# This should fail—Anonymous can only read
curl -X POST "http://localhost:5000/api/Book" \
-H "X-MS-API-ROLE: Anonymous" \
-H "Content-Type: application/json" \
-d '{"title": "New Book", "author": "Test"}'
Várt válasz: 403 Forbidden
Tesztelési forgatókönyvek
A szimulátor használatával tesztelje az alábbi gyakori forgatókönyveket:
| Scenario | A tesztelés menete |
|---|---|
| Névtelen hozzáférés |
X-MS-API-ROLE: Anonymous beállítása |
| Hitelesített hozzáférés | Fejlécek kihagyása (alapértelmezett), vagy állítsa be a X-MS-API-ROLE: Authenticated opciót |
| Egyéni szerepkör-hozzáférés |
X-MS-API-ROLE: <role-name> beállítása |
| Megtagadott művelet | Olyan művelet kérése, amelyhez a szerepkör nem rendelkezik engedélyekkel |
| Mezőkorlátozások | Mezőszintű engedélyek konfigurálása és válaszmezők ellenőrzése |
| Hiányzó szerepkör | Állítsa be X-MS-API-ROLE: nonexistent a hibakezelés teszteléséhez |
Korlátozások
A szimulátor-szolgáltató a következő korlátozásokkal rendelkezik:
| Korlátozás | Megoldás |
|---|---|
| Nincsenek személyre szabott jogcímek | Az AppService-szolgáltató használata a(z) X-MS-CLIENT-PRINCIPAL fejléccel |
| Nincsenek jogcímeket tartalmazó adatbázis-irányelvek | Szabályzatok tesztelése az AppService-szolgáltató használatával |
| Token nem kerül érvényesítésre | Váltás az Entra vagy egyéni szolgáltatóra éles környezetben |
| Csak fejlesztési mód | Valós szolgáltató használata éles környezetben |
Jótanács
Ha a jogcímeket (például) @claims.userIdhasználó adatbázis-szabályzatokat kell tesztelnie, használja inkább az AppService szolgáltatót . Lehetővé teszi, hogy egyéni követeléseket adjon meg a X-MS-CLIENT-PRINCIPAL fejlécen keresztül.
Átállás gyártási környezetbe
Amikor készen áll az üzembe helyezésre, cserélje le a szimulátorszolgáltatót egy termelési szolgáltatóra:
- Váltás
modea másikradevelopmentproduction - Módosítsa
providerszolgáltatójátSimulatoregy kiválasztott szolgáltatóra (EntraID/AzureAD,AppService, vagyCustom) - A szükséges JWT-beállítások (célközönség, kiállító) konfigurálása
{
"runtime": {
"host": {
"mode": "production",
"authentication": {
"provider": "EntraID",
"jwt": {
"audience": "api://<your-app-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
}
Teljes konfigurációs példa
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "Server=localhost;Database=Library;Trusted_Connection=true;TrustServerCertificate=true;"
},
"runtime": {
"host": {
"mode": "development",
"authentication": {
"provider": "Simulator"
}
}
},
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "Anonymous",
"actions": ["read"]
},
{
"role": "Authenticated",
"actions": ["read"]
},
{
"role": "author",
"actions": ["create", "read", "update"]
},
{
"role": "admin",
"actions": ["*"]
}
]
}
}
}