INTEGRITY Dokumentace

Konfigurace API

Pomocí API můžete schémata OpenAPI nahrávat, aktivovat, zobrazovat v seznamu a mazat. Nahrané schéma poskytuje pro své operace Schema Profile.

Konfigurace nahraného schématu

  1. Nahrajte schéma.
  2. Přidejte operace schématu do inventáře Web Assets.
  3. Aktivací schématu zpřístupníte vyhodnocení nahraného profilu.
  4. Odešlete reprezentativní provoz přes nakonfigurované operace.
  5. Analyzujte cf.schema_validation.uploaded.violated v Analýza profilu.
  6. Nakonfigurujte mitigaci pomocí WAF Custom Rules.

Uplatnění změn nastavení může trvat několik minut.

Konfigurace

Nahrání a aktivace schématu

Nahrajte schéma s POST. Tento příklad používá example_schema.yaml z aktuálního adresáře.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Nahrání schématu
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/schema_validation/schemas" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"kind": "openapi_v3",
		"name": "example_schema",
		"source": "<SOURCE>",
		"validation_enabled": true
	}'
{
	"result": {
		"schema": {
			"schema_id": "af632e95-c986-4738-a67d-2ac09995017a",
			"name": "example_schema",
			"kind": "openapi_v3",
			"source": "<SOURCE>",
			"created_at": "2023-04-03T15:10:08.902309Z"
		}
	},
	"success": true,
	"errors": [],
	"messages": []
}

Ve výchozím nastavení je vyhodnocování nahraného schématu neaktivní. Nastavte validation_enabled=true , aby bylo vyhodnocování dostupné během nahrávání.

Použijte PATCH , aby se po kontrole schématu aktivovalo vyhodnocování.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Povolení ověřování pro schéma
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/api_gateway/user_schemas/$SCHEMA_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"validation_enabled": true
	}'
{
	"result": {
		"schema_id": "0bf58160-5da3-48ac-80a9-069f9642c1a0",
		"name": "api_schema.json",
		"kind": "openapi_v3",
		"validation_enabled": true,
		"created_at": "0001-01-01T00:00:00Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Aktivace zpřístupní vyhodnocení nahraného profilu pro nakonfigurované operace. Zmírnění tím nekonfigurujete.

Přidat operace schématu

Schémata obsahují hostitele, cesty a metody, které definují operace. Operace představuje koncový bod pomocí metody HTTP, vzoru hostname a vzoru cesty.

Schema Validation vyhodnocuje pouze požadavky u operací přidaných do Web Assets. Operace schématu a jejich konfiguraci získáte pomocí GET.

příkaz cURL
curl --request GET "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/user_schemas/{schema_id}/operations?feature=schema_info&operation_status=new&page=1&per_page=5000" \
--header "Authorization: Bearer <API_TOKEN>" \
--header 'Content-Type: application/json'
{
	"result": [
		{
			"method": "GET",
			"host": "example.com",
			"endpoint": "/pets"
		}
	],
	"success": true,
	"errors": [],
	"messages": [],
	"result_info": {
		"page": 1,
		"per_page": 30,
		"count": 1,
		"total_count": 1
	}
}

Chcete-li získat informace o konfiguraci existujících operací, Cloudflare doporučuje předat ?feature=schema_info .

Přidejte operace schématu do Web Assets pomocí POST.

příkaz cURL
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/operations" \
--header "Authorization: Bearer <API_TOKEN>" \
--header 'Content-Type: application/json' \
--data '[
  {
   "method": "GET",
   "host": "example.com",
   "endpoint": "/pets",
  }
]'
{
	"result": [
		{
			"operation_id": "6c734fcd-455d-4040-9eaa-dbb3830526ae",
			"method": "GET",
			"host": "example.com",
			"endpoint": "/pets",
			"last_updated": "2023-04-04T16:07:37.575971Z"
		}
	],
	"success": true,
	"errors": [],
	"messages": []
}

Můžete přidat operace schématu, které ve Web Assets neexistují. Toto volání API podporuje až 20 operací a vyžaduje jq. U schémat s více než 20 novými operacemi spusťte příkaz znovu, abyste přidali další dávku.

příkaz cURL
response="$(curl --silent --fail-with-body "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/user_schemas/{schema_id}/operations?feature=schema_info&page=1&per_page=20&operation_status=new" --header "Authorization: Bearer <API_TOKEN>")" || exit 1
operations="$(printf "%s" "$response" | jq --exit-status ".result")" || exit 1

if [ "$(printf "%s" "$operations" | jq "length")" -eq 0 ]; then
	printf "No new operations found.\n"
else
	curl --silent --fail-with-body "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/operations" \
	--header "Authorization: Bearer <API_TOKEN>" \
	--header "Content-Type: application/json" \
	--data "$operations" || exit 1
fi

Seznam všech schémat

Seznam nahraných schémat v zóně pomocí GET.

validation_enabled=true je volitelný parametr.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Seznam všech nahraných schémat
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/schema_validation/schemas" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
    "result":  [
        {
	        "schema_id": "af632e95-c986-4738-a67d-2ac09995017a",
	        "name": "example_schema",
	        "kind": "openapi_v3",
	        "source": "<SOURCE>",
	        "created_at": "2023-04-03T15:10:08.902309Z"
	    }
    ]
    "success": true,
    "errors":
    [],
    "messages":
    []
}

Odstranění schématu

Schéma můžete smazat pomocí DELETE.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Odstranění schématu
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/schema_validation/schemas/$SCHEMA_ID" \
	--request DELETE \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
	"result": null,
	"success": true,
	"errors": [],
	"messages": []
}