- होम
- क्लाइंट-साइड डिफेंस
- API संदर्भ
API संदर्भ
CSD के पास डोमेन, स्क्रिप्ट, शमन और निगरानी प्रबंधन के लिए /api/shape/csd/ पर एक समर्पित API है। CSD को लोड बैलेंसर कॉन्फ़िगरेशन API के माध्यम से HTTP Load Balancers पर भी सक्षम किया जा सकता है।
प्रमाणीकरण
Section titled “प्रमाणीकरण”सभी API कॉल के लिए एक API टोकन आवश्यक है। XC Console में प्रशासन → Credentials → API Credentials के अंतर्गत एक टोकन उत्पन्न करें।
अपने पर्यावरण चर को API स्वचालन — पर्यावरण सेटअप में वर्णित अनुसार सेट करें:
set -a && source .env && set +aसभी curl उदाहरण xTOKENx प्लेसहोल्डर फ़ॉर्मेट का उपयोग करते हैं। अपने पर्यावरण चर से प्रतिस्थापित करें या पृष्ठ के शीर्ष पर इंटरैक्टिव फ़ॉर्म का उपयोग करें। उदाहरण के लिए, xF5XC_API_TOKENx का अनुरूप $F5XC_API_TOKEN है।
-H "Authorization: APIToken xF5XC_API_TOKENx"API परंपराएँ
Section titled “API परंपराएँ”प्रतिक्रिया निकाय
Section titled “प्रतिक्रिया निकाय”- POST बनाई गई ऑब्जेक्ट को JSON के रूप में लौटाता है।
- PUT और DELETE HTTP 200 पर एक खाली
\{\}लौटाते हैं — यह सामान्य है, कोई त्रुटि नहीं। खाली प्रतिक्रिया निकाय को विफलता के रूप में न मानें।
List बनाम GET एंडपॉइंट
Section titled “List बनाम GET एंडपॉइंट”List एंडपॉइंट (जैसे, /healthchecks, /origin_pools, /protected_domains) और व्यक्तिगत GET एंडपॉइंट (जैसे, /healthchecks/\{name\}) अलग-अलग प्रतिक्रिया संरचनाएँ लौटाते हैं:
| एंडपॉइंट प्रकार | उदाहरण पथ | प्रतिक्रिया संरचना |
|---|---|---|
| List | /origin_pools | आइटम में शीर्ष-स्तरीय .name, .namespace, .tenant होते हैं जिनमें metadata: null और get_spec: null होता है |
| व्यक्तिगत GET | /origin_pools/\{name\} | ऑब्जेक्ट में .metadata.name, .spec.* होता है जिसमें पूर्ण कॉन्फ़िगरेशन होता है |
प्रत्येक के लिए सही jq पथों का उपयोग करें। उदाहरण के लिए, list एंडपॉइंट से नाम निकालने के लिए .items[].name का उपयोग करें, .items[].metadata.name का नहीं।
संरक्षित डोमेन पहचानकर्ता
Section titled “संरक्षित डोमेन पहचानकर्ता”संरक्षित डोमेन GET और DELETE ऑपरेशन के लिए, \{name\} पथ पैरामीटर डोमेन मान स्वयं है (जैसे, bankexample.com), न कि कोई मनमाना ऑब्जेक्ट नाम। यह अन्य F5 XC ऑब्जेक्ट से अलग है जहाँ नाम उपयोगकर्ता द्वारा चुना गया पहचानकर्ता होता है।
CSD API एंडपॉइंट
Section titled “CSD API एंडपॉइंट”आधार पथ: /api/shape/csd/namespaces/\{namespace\}/
स्थिति और प्रारंभिकरण
Section titled “स्थिति और प्रारंभिकरण”| ऑपरेशन | विधि | पथ |
|---|---|---|
| CSD सक्षम करें | POST | /api/shape/csd/namespaces/system/init |
| स्थिति प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/status |
| JS कॉन्फ़िगरेशन प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/js_configuration |
| JS परीक्षण करें | POST | /api/shape/csd/namespaces/\{namespace\}/testjs |
| डोमेन अपडेट करें | POST | /api/shape/csd/namespaces/\{namespace\}/update_domains |
संरक्षित डोमेन
Section titled “संरक्षित डोमेन”| ऑपरेशन | विधि | पथ |
|---|---|---|
| सूची | GET | /api/shape/csd/namespaces/\{namespace\}/protected_domains |
| प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/protected_domains/\{name\} |
| बनाएँ | POST | /api/shape/csd/namespaces/\{namespace\}/protected_domains |
| हटाएँ | DELETE | /api/shape/csd/namespaces/\{namespace\}/protected_domains/\{name\} |
पहचाने गए डोमेन
Section titled “पहचाने गए डोमेन”| ऑपरेशन | विधि | पथ |
|---|---|---|
| पहचाने गए सूचीबद्ध करें | GET | /api/shape/csd/namespaces/\{namespace\}/detected_domains |
| विवरण प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/domain_details |
अनुमत डोमेन
Section titled “अनुमत डोमेन”| ऑपरेशन | विधि | पथ |
|---|---|---|
| सूची | GET | /api/shape/csd/namespaces/\{namespace\}/allowed_domains |
| प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/allowed_domains/\{name\} |
| बनाएँ | POST | /api/shape/csd/namespaces/\{namespace\}/allowed_domains |
| हटाएँ | DELETE | /api/shape/csd/namespaces/\{namespace\}/allowed_domains/\{name\} |
शमनित डोमेन
Section titled “शमनित डोमेन”| ऑपरेशन | विधि | पथ |
|---|---|---|
| सूची | GET | /api/shape/csd/namespaces/\{namespace\}/mitigated_domains |
| प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/mitigated_domains/\{name\} |
| बनाएँ | POST | /api/shape/csd/namespaces/\{namespace\}/mitigated_domains |
| हटाएँ | DELETE | /api/shape/csd/namespaces/\{namespace\}/mitigated_domains/\{name\} |
स्क्रिप्ट
Section titled “स्क्रिप्ट”| ऑपरेशन | विधि | पथ |
|---|---|---|
| स्क्रिप्ट सूचीबद्ध करें | POST | /api/shape/csd/namespaces/\{namespace\}/scripts |
| स्क्रिप्ट सूचीबद्ध करें (लीगेसी) | GET | /api/shape/csd/namespaces/\{namespace\}/scripts |
| स्क्रिप्ट अवलोकन प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/scripts/\{id\}/dashboard |
| व्यवहार सूचीबद्ध करें | GET | /api/shape/csd/namespaces/\{namespace\}/scripts/\{id\}/behaviors |
| नेटवर्क इंटरैक्शन सूचीबद्ध करें | GET | /api/shape/csd/namespaces/\{namespace\}/scripts/\{id\}/networkInteractions |
| औचित्य अपडेट करें | POST | /api/shape/csd/namespaces/\{namespace\}/scripts/\{script_id\}/justification |
| औचित्य हटाएँ | DELETE | /api/shape/csd/namespaces/\{namespace\}/script/justification/\{justification_id\} |
| पठन स्थिति अपडेट करें | POST | /api/shape/csd/namespaces/\{namespace\}/scripts/\{id\}/readStatus |
| प्रभावित उपयोगकर्ता सूचीबद्ध करें | POST | /api/shape/csd/namespaces/\{namespace\}/scripts/\{script_id\}/affectedUsers |
फ़ॉर्म फ़ील्ड
Section titled “फ़ॉर्म फ़ील्ड”| ऑपरेशन | विधि | पथ |
|---|---|---|
| फ़ॉर्म फ़ील्ड सूचीबद्ध करें | GET | /api/shape/csd/namespaces/\{namespace\}/formFields |
| फ़ॉर्म फ़ील्ड सूचीबद्ध करें (POST) | POST | /api/shape/csd/namespaces/\{namespace\}/formFields |
| फ़ॉर्म फ़ील्ड प्राप्त करें | GET | /api/shape/csd/namespaces/\{namespace\}/formFields/\{id\} |
| स्क्रिप्ट द्वारा सूचीबद्ध करें | GET | /api/shape/csd/namespaces/\{namespace\}/scripts/\{id\}/formFields |
| फ़ील्ड विश्लेषण अपडेट करें | POST | /api/shape/csd/namespaces/\{namespace\}/formFields/analysis |
CSD सक्षम करें
Section titled “CSD सक्षम करें”टेनेंट के लिए CSD प्रारंभ करें:
curl -s -X POST \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ -H "Content-Type: application/json" \ "xF5XC_API_URLx/api/shape/csd/namespaces/system/init"CSD स्थिति प्राप्त करें
Section titled “CSD स्थिति प्राप्त करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/status" \ | jq .संरक्षित डोमेन
Section titled “संरक्षित डोमेन”संरक्षित डोमेन सूचीबद्ध करें
Section titled “संरक्षित डोमेन सूचीबद्ध करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/protected_domains" \ | jq .एक संरक्षित डोमेन जोड़ें
Section titled “एक संरक्षित डोमेन जोड़ें”curl -s -X POST \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ -H "Content-Type: application/json" \ -d '{ "metadata": { "name": "my-app", "namespace": "xF5XC_NAMESPACEx" }, "spec": {} }' \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/protected_domains" \ | jq .एक संरक्षित डोमेन हटाएँ
Section titled “एक संरक्षित डोमेन हटाएँ”curl -s -X DELETE \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/protected_domains/my-app"पहचाने गए डोमेन
Section titled “पहचाने गए डोमेन”पहचाने गए डोमेन सूचीबद्ध करें
Section titled “पहचाने गए डोमेन सूचीबद्ध करें”क्वेरी पैरामीटर: locations (स्थान के अनुसार फ़िल्टर करें), risk (जोखिम स्तर के अनुसार फ़िल्टर करें)।
curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/detected_domains" \ | jq .उच्च जोखिम के अनुसार फ़िल्टर करें:
curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/detected_domains?risk=high" \ | jq .डोमेन विवरण प्राप्त करें
Section titled “डोमेन विवरण प्राप्त करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/domain_details?name=suspicious.example.com" \ | jq .स्क्रिप्ट
Section titled “स्क्रिप्ट”सभी स्क्रिप्ट सूचीबद्ध करें
Section titled “सभी स्क्रिप्ट सूचीबद्ध करें”curl -s -X POST \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ -H "Content-Type: application/json" \ -d '{}' \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts" \ | jq .स्क्रिप्ट अवलोकन प्राप्त करें
Section titled “स्क्रिप्ट अवलोकन प्राप्त करें”SCRIPT_ID="your-script-id"
curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts/${SCRIPT_ID}/dashboard" \ | jq .स्क्रिप्ट व्यवहार सूचीबद्ध करें
Section titled “स्क्रिप्ट व्यवहार सूचीबद्ध करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts/${SCRIPT_ID}/behaviors" \ | jq .नेटवर्क इंटरैक्शन सूचीबद्ध करें
Section titled “नेटवर्क इंटरैक्शन सूचीबद्ध करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts/${SCRIPT_ID}/networkInteractions" \ | jq .एक शमनित डोमेन जोड़ें
Section titled “एक शमनित डोमेन जोड़ें”curl -s -X POST \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ -H "Content-Type: application/json" \ -d '{ "metadata": { "name": "blocked-domain", "namespace": "xF5XC_NAMESPACEx" }, "spec": {} }' \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/mitigated_domains" \ | jq .शमनित डोमेन सूचीबद्ध करें
Section titled “शमनित डोमेन सूचीबद्ध करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/mitigated_domains" \ | jq .शमन हटाएँ
Section titled “शमन हटाएँ”curl -s -X DELETE \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/mitigated_domains/blocked-domain"अनुमत डोमेन
Section titled “अनुमत डोमेन”एक अनुमत डोमेन जोड़ें
Section titled “एक अनुमत डोमेन जोड़ें”curl -s -X POST \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ -H "Content-Type: application/json" \ -d '{ "metadata": { "name": "trusted-cdn", "namespace": "xF5XC_NAMESPACEx" }, "spec": {} }' \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/allowed_domains" \ | jq .अनुमत डोमेन सूचीबद्ध करें
Section titled “अनुमत डोमेन सूचीबद्ध करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/allowed_domains" \ | jq .एक अनुमत डोमेन हटाएँ
Section titled “एक अनुमत डोमेन हटाएँ”curl -s -X DELETE \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/allowed_domains/trusted-cdn"JS इंजेक्शन कॉन्फ़िगरेशन
Section titled “JS इंजेक्शन कॉन्फ़िगरेशन”वर्तमान कॉन्फ़िगरेशन प्राप्त करें
Section titled “वर्तमान कॉन्फ़िगरेशन प्राप्त करें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/js_configuration" \ | jq .HTTP Load Balancer CSD कॉन्फ़िगरेशन
Section titled “HTTP Load Balancer CSD कॉन्फ़िगरेशन”CSD JavaScript इंजेक्शन को /api/config/namespaces/\{namespace\}/http_loadbalancers/\{name\} पर कॉन्फ़िगरेशन API के माध्यम से सीधे HTTP Load Balancer पर भी सक्षम किया जा सकता है।
लोड बैलेंसर spec के भीतर client_side_defense फ़ील्ड इंजेक्शन को नियंत्रित करता है:
{ "client_side_defense": { "policy": { "js_insert_all_pages": {} } }}policy निम्नलिखित में से एक स्वीकार करता है:
| फ़ील्ड | विवरण |
|---|---|
js_insert_all_pages | सभी पृष्ठों पर इंजेक्ट करें |
js_insert_all_pages_except | बहिष्करण नियमों को छोड़कर सभी पृष्ठों पर इंजेक्ट करें |
js_insertion_rules | केवल नियमों से मेल खाते पृष्ठों पर इंजेक्ट करें |
disable_js_insert | इंजेक्ट न करें |
लोड बैलेंसर पर CSD अक्षम करने के लिए, client_side_defense को disable_client_side_defense: \{\} से बदलें।
लोड बैलेंसर से CSD कॉन्फ़िगरेशन पढ़ें
Section titled “लोड बैलेंसर से CSD कॉन्फ़िगरेशन पढ़ें”curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/config/namespaces/xF5XC_NAMESPACEx/http_loadbalancers/xF5XC_LB_NAMEx" \ | jq '.spec.client_side_defense'लोड बैलेंसर पर CSD सक्षम करें
Section titled “लोड बैलेंसर पर CSD सक्षम करें”प्राप्त करें, संशोधित करें और लागू करें:
curl -s \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ "xF5XC_API_URLx/api/config/namespaces/xF5XC_NAMESPACEx/http_loadbalancers/xF5XC_LB_NAMEx" \ > lb-config.json
jq '.spec |= ( del(.disable_client_side_defense) | .client_side_defense = { "policy": { "js_insert_all_pages": {} } })' lb-config.json > lb-config-updated.json
curl -s -X PUT \ -H "Authorization: APIToken xF5XC_API_TOKENx" \ -H "Content-Type: application/json" \ -d @lb-config-updated.json \ "xF5XC_API_URLx/api/config/namespaces/xF5XC_NAMESPACEx/http_loadbalancers/xF5XC_LB_NAMEx" \ | jq '.spec.client_side_defense'बहिष्करण नियमों के लिए डोमेन और पथ मिलान
Section titled “बहिष्करण नियमों के लिए डोमेन और पथ मिलान”js_insert_all_pages_except या js_insertion_rules का उपयोग करते समय, प्रत्येक नियम एक डोमेन और पथ संयोजन से मेल खाता है।
डोमेन (एक चुनें):
| फ़ील्ड | उदाहरण |
|---|---|
any_domain: \{\} | सभी डोमेन |
domain.exact_value | "app.example.com" |
domain.suffix_value | ".example.com" |
domain.regex_value | ".*\\.example\\.com" |
पथ (एक चुनें):
| फ़ील्ड | उदाहरण |
|---|---|
path.path | "/login" |
path.prefix | "/checkout" |
path.regex | "/user/[0-9]+" |
API संदर्भ
Section titled “API संदर्भ”- CSD API संदर्भ — पूर्ण एंडपॉइंट दस्तावेज़ीकरण
- CSD कॉन्फ़िगर करें — कंसोल कॉन्फ़िगरेशन मार्गदर्शिका
- API Credentials — API टोकन उत्पन्न करें