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 KÖVETKEZŐRE VONATKOZIK: Minden API Management réteg
A validate-graphql-request szabályzat ellenőrzi a GraphQL-kérést, és engedélyezi a access a GraphQL API adott lekérdezési útvonalaihoz. Az érvénytelen lekérdezés "kérelemhiba". Az engedélyezés csak érvényes kérelmek esetén történik.
Feljegyzés
Állítsa be a szabályzat elemeit és gyermekelemeit a szabályzatutasításban megadott sorrendben. További információ a API Management szabályzatok beállításáról és szerkesztéséről.
Szabályzatutasítás
<validate-graphql-request error-variable-name="variable name" max-size="size in bytes" max-depth="query depth">
<authorize>
<rule path="query path, for example: '/listUsers' or '/__*'" action="string or policy expression that evaluates to 'allow | remove | reject | ignore'" />
</authorize>
</validate-graphql-request>
Attribútumok
| Attribútum | Leírás | Kötelező | Alapértelmezett |
|---|---|---|---|
| error-variable-name | Annak a változónak a neve, amelybe context.Variables naplózni szeretné az érvényesítési hibákat. A szabályzatkifejezések engedélyezettek. |
Nem | N.A. |
| maximális méret | A kérelem hasznos adatainak maximális mérete bájtban. Megengedett maximális érték: 102 400 bájt (100 KB). (Ha növelni szeretné ezt a korlátot, lépjen kapcsolatba a support.) A szabályzatkifejezések engedélyezettek. | Igen | N.A. |
| maximális mélység | Egész szám. Lekérdezési mélység maximális száma. A szabályzatkifejezések engedélyezettek. | Nem | 6 |
Elemek
| Név | Leírás | Kötelező |
|---|---|---|
| engedélyez | Adja hozzá ezt az elemet egy vagy több elérési út megfelelő engedélyezési szabályának beállításához. | Nem |
| szabály | Adjon hozzá egy vagy több elemet adott lekérdezési útvonalak engedélyezéséhez. Minden szabály megadhat egy másik műveletet. Feltételesen megadható egy szabályzatkifejezés használatával. Minden GraphQL-levélmező esetében API Management kiértékeli az összes egyező szabályt, és a legspecifikusabb elérési útegyezést alkalmazza (például /Query/listUsers felülbírálja /Query/*). |
Nem |
szabályattribútumok
| Attribútum | Leírás | Kötelező | Alapértelmezett |
|---|---|---|---|
| elérési út | Az engedélyezési ellenőrzés végrehajtásának elérési útja. A következő mintát kell követnie: /type/field. |
Igen | N.A. |
| művelet | A szabály alkalmazása esetén végrehajtandó művelet . Feltételesen megadható egy szabályzatkifejezés használatával. | Nem | enged |
Bevezetési rendszer
A path=/__* házirendje az introspection rendszer. Ezzel elutasíthatja az introspection-kérelmeket (__schemastb __type.).
Kérelemműveletek
Az elérhető műveleteket az alábbi táblázat ismerteti.
| Művelet | Leírás |
|---|---|
| elutasít | Kéréshiba történik, és a rendszer nem küldi el a kérést a háttérrendszernek. Ha konfigurálva van, további szabályok nincsenek alkalmazva. |
| eltávolít | Mezőhiba történik, és a mező el lesz távolítva a kérelemből. |
| enged | A mező a háttérrendszernek lesz átadva. |
| semmibe vesz | A szabály érvénytelen ebben az esetben, és a következő szabály lesz alkalmazva. |
Használat
- Szabályzatszakaszok: bejövő
- Szabályzat hatókörei: globális, munkaterület, termék, API
- Átjárók: klasszikus, v2, használat, saját üzemeltetésű, munkaterület
Használati megjegyzések
Konfigurálja a szabályzatot egy átjáró vagy synthetic GraphQL API-hoz, amelyet a API Management importált.
Ez a szabályzat csak egyszer használható egy szabályzatszakaszban.
Mivel a GraphQL-lekérdezések egy lapított sémát használnak, az engedélyek bármely kimeneti típusú levélcsomóponton alkalmazhatók:
- Mutáció, lekérdezés vagy előfizetés
- Egyéni mező egy típusdeklarációban
Előfordulhat, hogy az engedélyek nem alkalmazhatók a következőre:
- Bemeneti típusok
- Töredékek
- Szakszervezetek
- Interfészek
- A sémaelem
A szabályzat a GraphQL-kérelmeket akár 250 lekérdezésmezővel is érvényesítheti minden szinten.
Hibakezelés
A GraphQL-sémán vagy a kérelem méretének vagy mélységének sikertelen ellenőrzése kéréshiba, és azt eredményezi, hogy a kérés hibablokkdal (de adatblokk nélkül) meghiúsult.
A tulajdonsághoz hasonlóan az Context.LastError összes GraphQL-ellenőrzési hiba automatikusan propagálódik a GraphQLErrors változóban. Ha a hibákat külön kell propagálja, megadhat egy hibaváltozó nevét. A rendszer a hibákat a változóra és a error változóra küldi GraphQLErrors .
Példák
Lekérdezés érvényesítése
Ez a példa a következő ellenőrzési és engedélyezési szabályokat alkalmazza egy GraphQL-lekérdezésre:
- A 100 kb-nál nagyobb vagy 4-nél nagyobb lekérdezési mélységű kérelmek elutasításra kerülnek.
- A rendszer elutasítja az introspection rendszerre irányuló kérelmeket.
- A
/Missions/namemező el lesz távolítva a kétnál több fejlécet tartalmazó kérelmekből.
<validate-graphql-request error-variable-name="name" max-size="102400" max-depth="4">
<authorize>
<rule path="/__*" action="reject" />
<rule path="/Missions/name" action="@(context.Request.Headers.Count > 2 ? "remove" : "allow")" />
</authorize>
</validate-graphql-request>
Mutáció ellenőrzése
Ez a példa a következő ellenőrzési és engedélyezési szabályokat alkalmazza a GraphQL-mutációra:
- A 100 kb-nál nagyobb vagy 4-nél nagyobb lekérdezési mélységű kérelmek elutasításra kerülnek.
- A mezőmutációra vonatkozó kéréseket a
deleteUserrendszer megtagadja, kivéve, ha a kérelem IP-címről198.51.100.1származik.
<validate-graphql-request error-variable-name="name" max-size="102400" max-depth="4">
<authorize>
<rule path="/Mutation/deleteUser" action="@(context.Request.IpAddress <> "198.51.100.1" ? "deny" : "allow")" />
</authorize>
</validate-graphql-request>
Kapcsolódó szabályzatok
Kapcsolódó tartalom
A szabályzatok használatával kapcsolatos további információkért lásd:
- Oktatóanyag: AZ API átalakítása és védelme
- Szabályzathivatkozás a szabályzatutasságok és azok beállításainak teljes listájához
- Házirend-kifejezések
- Házirendek beállítása vagy szerkesztése
- Szabályzatkonfigurációk újrafelhasználása
- Policy-kódrészletek adattára
- Policy-minták adattára
- Azure API Management házirend-eszközkészlet
- Társi segítségnyújtás létrehozása szabályzatok létrehozásához, magyarázatához és hibaelhárításához