Sdílet prostřednictvím


Místní ověřování ve tvůrci rozhraní Data API

Při místním vývoji řešení pomocí tvůrce rozhraní Data API nebo při místním spouštění Tvůrce rozhraní Data API je potřeba otestovat nakonfigurované možnosti ověřování a autorizace simulací požadavku s konkrétní rolí nebo deklarací identity.

Pokud chcete simulovat ověřený požadavek bez konfigurace zprostředkovatele ověřování (například Microsoft Entra ID), můžete využít zprostředkovatele ověřování nebo SimulatorStaticWebApps :

Použití zprostředkovatele Simulator

Simulator je konfigurovatelný zprostředkovatel ověřování, který dává modulu tvůrce rozhraní Data API pokyn, aby všechny požadavky zpracovával jako ověřené.

  • Minimálně všechny požadavky se vyhodnocují v kontextu systémové role Authenticated.
  • V případě potřeby se požadavek vyhodnotí v kontextu jakékoli role označené v hlavičce X-MS-API-ROLE HTTP.

Poznámka

Požadovaná role se sice bude respektovat, ale oprávnění autorizace definující zásady databáze nebudou Simulator fungovat, protože pro ověřeného uživatele u zprostředkovatele není možné nastavit vlastní deklarace identity. Pokračujte k části Použití poskytovatele StaticWebApps k testování zásad autorizace databáze.

1. Aktualizace zprostředkovatele ověřování konfigurace modulu runtime

Ujistěte se, že v konfiguračním souboru používáte zprostředkovatele Simulator ověřování a development že je zadaný režim. Projděte si tuto ukázkovou host konfiguraci:

"host": {
  "mode": "development",
  "authentication": {
    "provider": "Simulator"
  }
}

2. Zadejte kontext role požadavku.

U Simulator zprostředkovatele ověřování tvůrce rozhraní Data API není k nastavení kontextu role na systémovou roli Authenticatedpotřeba žádná vlastní hlavička:

curl --request GET \
  --url http://localhost:5000/api/books \

Pokud chcete nastavit kontext role na jakoukoli jinou roli, včetně systémové role Anonymous, musí být hlavička X-MS-API-ROLE zahrnuta s požadovanou rolí:

curl --request GET \
  --url http://localhost:5000/api/books \
  --header 'X-MS-API-ROLE: author' \

Použití zprostředkovatele StaticWebApps

Zprostředkovatel StaticWebApps ověřování dává tvůrci rozhraní Data API pokyn, aby hledal sadu hlaviček HTTP, které jsou k dispozici pouze při spuštění v prostředí Static Web Apps. Klient nastaví tyto hlavičky HTTP při spuštění místně, aby simuloval ověřeného uživatele, včetně členství v rolích nebo vlastních deklarací identity.

Poznámka

Instance hlavičky HTTP poskytnuté klientem budou fungovat pouze při místním vývoji, X-MS-CLIENT-PRINCIPALprotože produkční Azure Static Web Apps prostředí vyřadí všechny instance této hlavičky poskytnuté klientem.

Ujistěte se, že v konfiguračním souboru používáte zprostředkovatele StaticWebApps ověřování. Projděte si tuto ukázkovou host konfiguraci:

"host": {
  "mode": "development",
  "authentication": {
    "provider": "StaticWebApps"
  }
}

1. Odesílání požadavků s vygenerovanou X-MS-CLIENT-PRINCIPAL hlavičkou

Jakmile je tvůrce rozhraní Data API spuštěný místně a nakonfigurovaný tak, aby používal StaticWebApps zprostředkovatele ověřování, můžete ručně vygenerovat objekt zabezpečení klienta pomocí následující šablony:

{  
  "identityProvider": "test",
  "userId": "12345",
  "userDetails": "john@contoso.com",
  "userRoles": ["author", "editor"]
}

Metadata ověřeného uživatele statické webové aplikace mají následující vlastnosti:

Vlastnost Popis
identityProvider Libovolná řetězcová hodnota.
userId Jedinečný identifikátor uživatele.
userDetails Uživatelské jméno nebo e-mailová adresa uživatele
role uživatele Pole přiřazených rolí uživatele.

Poznámka

Jak je uvedeno v dokumentaci Static Web Apps, hlavička X-MS-CLIENT-PRINCIPAL neobsahuje claims pole .

Aby bylo možné ji předat s hlavičkou X-MS-CLIENT-PRINCIPAL , musí být datová část JSON kódovaná jako Base64. Můžete k tomu použít jakýkoli online nebo offline nástroj. Jedním z takových nástrojů je DevToys. Ukázková datová část s kódováním Base64, která představuje dříve odkazovaný kód JSON:

eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9

Následující požadavek cURL simuluje ověřeného uživatele, který načítá seznam dostupných Book záznamů entity v kontextu author role:

curl --request GET \
  --url http://localhost:5000/api/books \
  --header 'X-MS-API-ROLE: author' \
  --header 'X-MS-CLIENT-PRINCIPAL: eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9'