Benutzerdefinierte Java-Callout-Sicherheitsrichtlinie hinzufügen

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Was ist eine benutzerdefinierte Java-Callout-Sicherheitsrichtlinie?

Mithilfe von Java-Callouts können Sie das Verhalten Ihrer API mit von Java-Code anpassen. Wenn Sie ein Java-Callout implementieren, legt Apigee Standardberechtigungen für die API mithilfe von Java-Berechtigungsrichtlinien fest. In Apigee Hybrid können Sie die Standardberechtigungen ändern, indem Sie eine benutzerdefinierte Java-Callout-Sicherheitsrichtlinie erstellen.

Sie können eine benutzerdefinierte Java-Callout-Sicherheitsrichtlinie mithilfe einer Ressource erstellen, die in einer Ressourcendatei vom Typ securityPolicy definiert ist. Die Ressource wird auf der Umgebungsebene konfiguriert. Die Ressourcendatei kann einen beliebigen Namen haben, aber Sie müssen das Suffix .policy dem Namen der benutzerdefinierten Java-Richtliniendatei hinzufügen. Beispiel: strict-security.policy.

Mit dem folgenden Befehl wird eine Ressourcendatei mit dem Namen strict-security.policy hinzugefügt.

curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=CustomJavaSecurityPolicy&type=securityPolicy"
-H "Authorization: Bearer $TOKEN" \
-H "Content-type: multipart/form-data" \
-F file=@/Users/home/strict-security.policy
Dateien für Sicherheitsrichtlinien unterstützen die gleiche Syntax wie die Standard-Java-Sicherheitsrichtlinie. Weitere Informationen finden Sie unter Standardrichtlinienimplementierung und Richtliniendateisyntax.

Nachdem Sie eine Sicherheitsrichtliniendatei erstellt haben, die eine benutzerdefinierte Java-Callout-Richtlinie definiert, kann die Apigee-Laufzeit die Richtlinie erkennen und die von der Richtlinie definierten benutzerdefinierten Berechtigungen verwenden. Wenn keine benutzerdefinierte Java-Callout-Richtlinie vorhanden ist, verwendet Apigee die Standardsicherheitsrichtlinie für benutzerdefinierten Java- oder Python-Code.

Sicherheitsrichtliniendatei

Die folgenden Beispiele zeigen den Beispielinhalt einer Sicherheitsrichtliniendatei.

In den folgenden Zeilen wird der Speicherort des Codes für ein benutzerdefiniertes Java-Callout angegeben und es werden alle Berechtigungen für das Verzeichnis gewährt.

Relaxed security policy file for testing
// javacallout code has just read permission in the installed dir and everything below it
  grant codeBase "file:${javacallout.dir}/-"  {
    permission java.security.AllPermission;
}

Diese Zeilen geben den Speicherort des Codes für ein benutzerdefiniertes Jython-/Python-Callout an und gewähren Leseberechtigungen für das Verzeichnis.

// Jython/Python secure
grant codeBase "file:${jython-secure-jar}" {
    // No logging permissions for secure jar. Hence value of the AllExcept target parameter set to 0
    permission com.apigee.securitypolicy.AllExcept "0", "java.io.FilePermission";
    permission java.io.FilePermission "{T}conf_security-policy_install.dir{/T}/lib/-" , "read";
    // Add JRE read permissions to jython. Existing permissions have two formats to java home. Keep the same.
    permission java.io.FilePermission "${java.home}/-", "read,readLink";
    permission java.io.FilePermission "${JAVA_HOME}/-", "read,readLink";
}

Beispiele

Die folgenden Beispiele zeigen, wie Sie bestimmte Aufgaben im Zusammenhang mit benutzerdefinierten Java-Callout-Sicherheitsrichtlinien ausführen.

Benutzerdefinierte Java-Callout-Sicherheitsrichtlinie erstellen

Mit dem folgenden Befehl wird eine benutzerdefinierte Java-Callout-Sicherheitsrichtlinie erstellt, die in der Ressourcendatei namens strict-security.policy definiert ist.

curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=CustomJavaSecurityPolicy&type=securityPolicy"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/home/strict-security.policy

Alle Sicherheitsrichtlinien ansehen

Mit dem folgenden Befehl können Sie alle vorhandenen benutzerdefinierten Java-Callout-Sicherheitsrichtlinien in Ihrer API aufrufen.

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy" \
  -H "Authorization: Bearer $TOKEN"

Inhalt einer Sicherheitsrichtliniendatei ansehen

Der folgende Befehl ruft den Inhalt einer einzelnen Sicherheitsrichtliniendatei ab, damit Sie ihn sich ansehen können.

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy" \
  -H "Authorization: Bearer $TOKEN"

Richtlinie für eine Umgebung aktualisieren

Mit dem folgenden Befehl wird eine Sicherheitsrichtlinie aktualisiert, die einer Umgebung zugeordnet ist.

curl -X PUT "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/home/strict-security-revised.policy

Auf eine Umgebung beschränkte Sicherheitsrichtlinie löschen

Mit dem folgenden Befehl wird eine Sicherheitsrichtlinie gelöscht, die einer Umgebung zugeordnet ist.

curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy \
  -H "Authorization: Bearer $TOKEN"