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 Simulator
StaticWebApps
:
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 Authenticated
potř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-PRINCIPAL
protož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'