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