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

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.

APIs zum Verwalten der API-Sicherheit verwenden