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.