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 helyi használatával vagy a Data API Builder helyszíni futtatásakor tesztelnie kell a konfigurált hitelesítési és engedélyezési beállításokat egy adott szerepkörrel vagy jogcímmel rendelkező kérés szimulálásával.
Hitelesített kérés szimulálásához egy hitelesítésszolgáltató (például a Microsoft Entra ID) konfigurálása nélkül használhatja az Simulator vagy a StaticWebApps hitelesítésszolgáltatókat.
A(z) Simulator szolgáltató használata
Simulator egy konfigurálható hitelesítési szolgáltató, amely arra utasítja a Data API builder motort, hogy az összes kérést hitelesítve kezelje.
- Legalább az összes kérés kiértékelése a rendszerszerepkör
Authenticatedkontextusában történik. - Ha szükséges, a rendszer a http fejlécben szereplő szerepkörök kontextusában értékeli ki a kérést
X-MS-API-ROLE.
Megjegyzés:
Bár a kívánt szerepkör tiszteletben lesz tartva, az adatbázis-szabályzatokat meghatározó engedélyezési engedélyek nem fognak működni, mert egyéni jogcímek nem állíthatók be a hitelesített felhasználóhoz a Simulator szolgáltatónál. Folytassa a következő szakaszsal: A szolgáltató használata adatbázis-engedélyezési StaticWebApps szabályzatok teszteléséhez.
1. A futtatókörnyezet konfigurációs hitelesítési szolgáltatójának frissítése
Győződjön meg arról, hogy a konfigurációs fájlban a Simulator hitelesítési szolgáltatót használja és a development mód meg van határozva. Tekintse meg ezt a mintakonfigurációs host szakaszt:
"host": {
"mode": "development",
"authentication": {
"provider": "Simulator"
}
}
2. Adja meg a kérés szerepkör-környezetét
A Simulator szerepel a Data API Builder hitelesítési szolgáltatójaként, így nincs szükség egyéni fejlécre ahhoz, hogy a szerepkör-környezetet a rendszerszerepkörre Authenticated állítsuk be.
curl --request GET \
--url http://localhost:5000/api/books \
Ha a szerepkörkörnyezetet bármely más szerepkörre szeretné beállítani, beleértve a rendszerszerepkört Anonymousis, a X-MS-API-ROLE fejlécnek szerepelnie kell a kívánt szerepkörben:
curl --request GET \
--url http://localhost:5000/api/books \
--header 'X-MS-API-ROLE: author' \
Használja a StaticWebApps szolgáltatót
A StaticWebApps hitelesítési szolgáltató arra utasítja a Data API Buildert, hogy keressen olyan HTTP-fejléceket, amelyek csak statikus Web Apps-környezetben futnak. Az ügyfél helyi futtatáskor beállítja ezeket a HTTP-fejléceket egy hitelesített felhasználó szimulálásához, beleértve a szerepkör-tagságot vagy az egyéni jogcímeket is.
Megjegyzés:
A Http-fejléc ügyfél által biztosított példányai csak helyi fejlesztés esetén működnek, X-MS-CLIENT-PRINCIPALmert az Azure Static Web Apps éles környezetek minden ügyfél által biztosított példányt elvetnek abból a fejlécből.
Győződjön meg arról, hogy a konfigurációs fájlban a hitelesítési szolgáltatót StaticWebApps használja. Tekintse meg ezt a mintakonfigurációs host szakaszt:
"host": {
"mode": "development",
"authentication": {
"provider": "StaticWebApps"
}
}
1. Generált fejlécet X-MS-CLIENT-PRINCIPAL tartalmazó kérések küldése
Miután a Data API Builder helyileg fut, és konfigurálva van a StaticWebApps hitelesítésszolgáltató használatára, manuálisan is létrehozhat egy ügyfélnév-objektumot a következő sablon használatával:
{
"identityProvider": "test",
"userId": "12345",
"userDetails": "john@contoso.com",
"userRoles": ["author", "editor"]
}
A statikus webalkalmazás hitelesített felhasználói metaadatai a következő tulajdonságokkal rendelkeznek:
| Ingatlan | Leírás |
|---|---|
| identitySzolgáltató | Bármilyen sztringérték. |
| Felhasználói azonosító | A felhasználó egyedi azonosítója. |
| felhasználó adatai | A felhasználó felhasználóneve vagy e-mail-címe. |
| felhasználói szerepkörök | A felhasználó hozzárendelt szerepköreinek tömbje. |
Megjegyzés:
A Static Web Apps dokumentációjában leírtak szerint a X-MS-CLIENT-PRINCIPAL fejléc nem tartalmazza a claims tömböt.
Ahhoz, hogy a JSON hasznos adatai a X-MS-CLIENT-PRINCIPAL fejlécben átadhatók legyenek, Base64-kódolásúnak kell lenniük. Ehhez bármilyen online vagy offline eszközt használhat. Az egyik ilyen eszköz a DevToys. Egy base64-kódolású minta hasznos adat, amely a korábban hivatkozott JSON-t jelöli:
eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9
A következő cURL-kérés egy hitelesített felhasználót szimulál, aki lekéri a szerepkör kontextusában author elérhető Book entitásrekordok listáját:
curl --request GET \
--url http://localhost:5000/api/books \
--header 'X-MS-API-ROLE: author' \
--header 'X-MS-CLIENT-PRINCIPAL: eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9'