इसे छोड़कर कंटेंट पर जाएं

API संदर्भ

CSD के पास डोमेन, स्क्रिप्ट, शमन और निगरानी प्रबंधन के लिए /api/shape/csd/ पर एक समर्पित API है। CSD को लोड बैलेंसर कॉन्फ़िगरेशन API के माध्यम से HTTP Load Balancers पर भी सक्षम किया जा सकता है।

सभी API कॉल के लिए एक API टोकन आवश्यक है। XC Console में प्रशासनCredentialsAPI Credentials के अंतर्गत एक टोकन उत्पन्न करें।

अपने पर्यावरण चर को API स्वचालन — पर्यावरण सेटअप में वर्णित अनुसार सेट करें:

Terminal window
set -a && source .env && set +a

सभी curl उदाहरण xTOKENx प्लेसहोल्डर फ़ॉर्मेट का उपयोग करते हैं। अपने पर्यावरण चर से प्रतिस्थापित करें या पृष्ठ के शीर्ष पर इंटरैक्टिव फ़ॉर्म का उपयोग करें। उदाहरण के लिए, xF5XC_API_TOKENx का अनुरूप $F5XC_API_TOKEN है।

Terminal window
-H "Authorization: APIToken xF5XC_API_TOKENx"

प्रतिक्रिया निकाय

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 ऑब्जेक्ट से अलग है जहाँ नाम उपयोगकर्ता द्वारा चुना गया पहचानकर्ता होता है।

आधार पथ: /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
ऑपरेशनविधिपथ
सूची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\}
ऑपरेशनविधिपथ
पहचाने गए सूचीबद्ध करेंGET/api/shape/csd/namespaces/\{namespace\}/detected_domains
विवरण प्राप्त करेंGET/api/shape/csd/namespaces/\{namespace\}/domain_details
ऑपरेशनविधिपथ
सूची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\}
ऑपरेशनविधिपथ
सूची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\}
ऑपरेशनविधिपथ
स्क्रिप्ट सूचीबद्ध करें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
ऑपरेशनविधिपथ
फ़ॉर्म फ़ील्ड सूचीबद्ध करें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 प्रारंभ करें:

Terminal window
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 स्थिति प्राप्त करें”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/status" \
| jq .

संरक्षित डोमेन सूचीबद्ध करें

Section titled “संरक्षित डोमेन सूचीबद्ध करें”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/protected_domains" \
| jq .

एक संरक्षित डोमेन जोड़ें

Section titled “एक संरक्षित डोमेन जोड़ें”
Terminal window
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 “एक संरक्षित डोमेन हटाएँ”
Terminal window
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 “पहचाने गए डोमेन सूचीबद्ध करें”

क्वेरी पैरामीटर: locations (स्थान के अनुसार फ़िल्टर करें), risk (जोखिम स्तर के अनुसार फ़िल्टर करें)।

Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/detected_domains" \
| jq .

उच्च जोखिम के अनुसार फ़िल्टर करें:

Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/detected_domains?risk=high" \
| jq .

डोमेन विवरण प्राप्त करें

Section titled “डोमेन विवरण प्राप्त करें”
Terminal window
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 “सभी स्क्रिप्ट सूचीबद्ध करें”
Terminal window
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 “स्क्रिप्ट अवलोकन प्राप्त करें”
Terminal window
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 “स्क्रिप्ट व्यवहार सूचीबद्ध करें”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts/${SCRIPT_ID}/behaviors" \
| jq .

नेटवर्क इंटरैक्शन सूचीबद्ध करें

Section titled “नेटवर्क इंटरैक्शन सूचीबद्ध करें”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts/${SCRIPT_ID}/networkInteractions" \
| jq .

एक शमनित डोमेन जोड़ें

Section titled “एक शमनित डोमेन जोड़ें”
Terminal window
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 “शमनित डोमेन सूचीबद्ध करें”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/mitigated_domains" \
| jq .
Terminal window
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 “एक अनुमत डोमेन जोड़ें”
Terminal window
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 “अनुमत डोमेन सूचीबद्ध करें”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/allowed_domains" \
| jq .

एक अनुमत डोमेन हटाएँ

Section titled “एक अनुमत डोमेन हटाएँ”
Terminal window
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 “वर्तमान कॉन्फ़िगरेशन प्राप्त करें”
Terminal window
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 कॉन्फ़िगरेशन पढ़ें”
Terminal window
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 सक्षम करें”

प्राप्त करें, संशोधित करें और लागू करें:

Terminal window
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]+"