Megosztás a következőn keresztül:


Helyi hitelesítés a Data API Builderben

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'