Sdílet prostřednictvím


Místní ověřování v Tvůrci rozhraní DATA API

Při vývoji řešení pomocí tvůrce rozhraní Data API místně nebo při místním spuštění Tvůrce rozhraní Data API musíte 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 poskytovatele ověřování (například Microsoft Entra ID), můžete využít poskytovatele ověřování Simulator nebo StaticWebApps.

Použijte Simulator zprostředkovatele

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

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

Poznámka:

I když bude požadovaná role dodržena, oprávnění autorizace definující zásady databáze nebudou fungovat, protože pro ověřeného uživatele s Simulator poskytovatelem není možné nastavit vlastní deklarace identity. Pokračujte v části Použití StaticWebApps zprostředkovatele 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, který používáte, je zadaný zprostředkovatel ověřování Simulator a specifikovaný režim development. Projděte si tuto ukázkovou host část konfigurace:

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

2. Zadejte kontext role požadavku.

Vzhledem k tomu, že Simulator je poskytovatelem ověřování tvůrce rozhraní Data API, není nutné používat žádnou vlastní hlavičku pro nastavení kontextu role na systémovou roli Authenticated.

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

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

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

Použijte StaticWebApps zprostředkovatele

StaticWebApps Zprostředkovatel 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 místním spuštění pro simulaci ověřeného uživatele, včetně členství v roli nebo vlastních deklarací identity.

Poznámka:

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

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

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

1. Odeslá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 objekt objektu zabezpečení klienta vygenerovat ručně pomocí následující šablony:

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

Metadata ověřených uživatelů statické webové aplikace mají následující vlastnosti:

Vlastnictví Popis
Poskytovatel identity Libovolná řetězcová hodnota.
ID uživatele Jedinečný identifikátor uživatele.
Podrobnosti o uživateli Uživatelské jméno nebo e-mailová adresa uživatele
uživatelské role Pole přiřazených rolí uživatele.

Poznámka:

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

Aby bylo možné předat hlavičku X-MS-CLIENT-PRINCIPAL , musí být datová část JSON kódovaná jako Base64. K tomu můžete 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ý JSON:

eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9

Následující požadavek cURL simuluje ověřeného uživatele, který načítá seznam dostupných Book záznamů entit 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'