APIs zum Verwalten der API-Sicherheit verwenden
Sie können auf die APIs zugreifen, um eine API-Sicherheit zu erstellen, zu konfigurieren und bereitzustellen.
Hinweis:
Informationen zur Verwendung von API-Sicherheits-APIs zur Konfiguration der Funktion finden Sie in der Nitro-API-Dokumentation.
| Schritte | Ressourcen-URL | ||
|---|---|---|---|
| 1 | Erstellen Sie eine API-Definition | https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/apidefs | |
| 2 | Einen API-Proxy hinzufügen | https://adm.cloud.com/apiproxies | |
| 3 | Stellen Sie eine API-Instanz mithilfe des API-Proxys bereit | https://adm.cloud.com/apiproxies/{customerid}/deployments | |
| 4 | API-Richtlinien hinzufügen | https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/policies/{id} | |
Jede API-Richtlinie hat ein anderes config_spec-Objekt. Es ist ein undurchsichtiges Objekt, das ein JSON-Wörterbuch enthält, um einen policytype mit bestimmten Werten zu konfigurieren.
In diesem Objekt können Sie eine API-Ressource und ihre Methoden mithilfe der folgenden Optionen auswählen:
-
api-resource-paths- Geben Sie die API-Ressourcenpfade und -Methoden an, die in einer API-Definition definiert sind.Beispiel:
{ "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": false, "put": false, "delete": false } <!--NeedCopy--> -
custom-rules- Geben Sie die benutzerdefinierten API-Ressourcenpfade und -Methoden an, die in einer API-Definition möglicherweise nicht vorhanden sind.Beispiel:
{ "endpoints": ["/pet/categories", "/pet/findByName"], "get": true, "post": false, "put": false, "delete": false } <!--NeedCopy-->
Bei dieser Konfiguration filtert die Richtlinie die eingehenden Verkehrsanfragen, die den angegebenen API-Ressourcenpfaden entsprechen.
Informationen zu den config_spec für die einzelnen Richtlinientypen finden Sie in den API-Beispielen für Richtlinientypen.
API-Beispiele für Richtlinientypen
In diesem Abschnitt werden die unterstützten API-Richtlinientypen und ihre Konfiguration beschrieben:
- Ratenlimit
- OAuth
- Grundlegende Authentifizierung
- Keine Authentifizierung
- Bot
- WAF
- Header Rewrite
- URI Path Rewrite
- Autorisierung
- Verweigern
Ratenlimit
Im Folgenden finden Sie eine Beispielkonfiguration für den Richtlinientyp Ratelimit. Geben Sie die folgende Konfiguration im config_spec-Objekt an:
{ "policytype": "Ratelimit", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": false, "put": false, "delete": false }, "custom-rules": {}, "threshold": "10", "timeslice": "20000", "limittype": "BURSTY", "api-respondertype": "DROP", "header_name": "x-api-key", "per_client_ip": true }, "order_index": 1, "policy_name": "ratelimit_policy" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie unter Ratenbegrenzungsrichtlinie.
OAuth
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp JWT Auth validation. Geben Sie die folgende Konfiguration im config_spec-Objekt an:
{ "policytype": "JWT Auth Validation", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "jwks-uri": "https://uri.petstore.com", "issuer": "https://issuer.petstore.com", "audience": "petstore", "introspect-uri": "https://introspect.uri.com", "clientid": "client", "clientsecret": "clientsecret", "claims-to-save": ["scope", "scope2"], "allowed-algorithms": { "hs256": true, "rs256": true, "rs512": true } }, "order_index": 2, "policy_name": "Jwt_auth_policy" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie in der OAuth-Richtlinie
Grundlegende Authentifizierung
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp BasicAuth:
{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false }, "custom-rules": {} }, "order_index": 3, "policy_name": "Auth_BaSIC", "policytype": "BasicAuth" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie unter Grundlegende Authentifizierungsrichtlinie.
Keine Authentifizierung
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp NoAuth:
{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": false, "put": false }, "custom-rules": {} }, "order_index": 4, "policy_name": "no_auth_policy", "policytype": "NoAuth" } <!--NeedCopy--> Bot
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp Bot:
{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": false, "post": false, "put": false }, "bot-prof-name": "apisec_test_profile", "custom-rules": {} }, "order_index": 5, "policy_name": "bot_policy", "policytype": "Bot" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie unter Bot-Richtlinie.
WAF
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den WAF-Richtlinientyp:
{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": false, "post": false, "put": false }, "waf-prof-name": "apisec_waf_profile", "custom-rules": {} }, "order_index": 6, "policy_name": "waf_policy", "policytype": "WAF" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie in der WAF-Richtlinie.
Header Rewrite
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp Header Rewrite. Geben Sie diese Konfiguration im config_spec-Objekt an:
{ "policytype": "Header Rewrite", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "rewrite-policy-header-field-name": "org", "rewrite-policy-header-field-val": "Citrix", "rewrite-policy-header-field-new-val": "Citrite" }, "order_index": 7, "policy_name": "header_rewrite_pol" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie unter Header Rewrite-Richtlinie.
URI Path Rewrite
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp URI Path Rewrite:
{ "config_spec": { "api-resource-paths": { "endpoints": ["/store/order", "/store/inventory"], "delete": false, "get": true, "post": true, "patch": false, "put": false }, "custom-rules": { "delete": false, "endpoints": [], "get": false, "post": false, "patch": false, "put": true }, "path-rewrite-params": [ { "insert-segment-position": "beginning", "new-path-value": "v3", "old-path-value": "v2", "action-type": "replace path segment" }, { "insert-segment-position": "beginning", "new-path-value": "begin", "action-type": "insert path segment" }, { "insert-segment-position": "end", "new-path-value": "end", "action-type": "insert path segment" }, { "insert-segment-position": "before", "new-path-value": "before", "old-path-value": "store", "action-type": "insert path segment" }, { "insert-segment-position": "after", "new-path-value": "after", "old-path-value": "store", "action-type": "insert path segment" } ] }, "order_index": 24, "policy_name": "eats_uripathrewrite", "policytype": "URI Path Rewrite” } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie unter URI Path Rewrite-Richtlinie.
Autorisierung
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp Authorization. Geben Sie die folgende Konfiguration im config_spec-Objekt an:
{ "policytype": "Authorization", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "claims": [{ "name": "scope", "values": ["value1", "value2"] }] }, "order_index": 8, "policy_name": "authorization" } <!--NeedCopy--> Weitere Informationen zu den einzelnen Attributen finden Sie unter Autorisierungsrichtlinie.
Verweigern
Im Folgenden finden Sie ein Beispiel für eine API-Konfiguration für den Richtlinientyp Deny. Geben Sie die folgende Konfiguration im config_spec-Objekt an:
{ "policytype": "Deny", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "api-denytype": "RESPONDWITH" }, "order_index": 9, "policy_name": "deny_policy" } <!--NeedCopy--> In api-denytype können Sie einen der folgenden Werte angeben:
- RESPONDWITH
- RESET
Weitere Informationen zu den einzelnen Attributen finden Sie unter Regel ablehnen.