Ajouter une règle de sécurité personnalisée pour les appels Java

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Qu'est-ce qu'une règle de sécurité personnalisée pour les appels Java ?

Les appels Java vous permettent de personnaliser le comportement de votre API à l'aide de code Java. Lorsque vous mettez en œuvre un appel Java, Apigee définit des autorisations par défaut pour l'API à l'aide des règles d'autorisation Java. Dans Apigee hybrid, vous pouvez modifier les autorisations par défaut en créant une règle de sécurité personnalisée pour les appels Java.

Vous pouvez créer une règle de sécurité personnalisée pour les appels Java à l'aide d'une ressource définie dans un fichier de ressources de type securityPolicy. La ressource est configurée au niveau de l'environnement. Le fichier de ressource peut porter n'importe quel nom, mais vous devez ajouter le suffixe .policy au nom du fichier de règle Java personnalisée. Par exemple : strict-security.policy.

La commande suivante ajoute un fichier de ressources nommé strict-security.policy.

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
Les fichiers de règles de sécurité sont compatibles avec la même syntaxe que les règles de sécurité Java standards. Consultez la page Mise en œuvre par défaut des règles et syntaxe des fichiers de règles.

Une fois que vous avez créé un fichier de règle de sécurité définissant une règle personnalisée pour les appels Java, l'environnement d'exécution Apigee peut détecter la règle et utiliser les autorisations personnalisées définies par la règle. En l'absence de règle personnalisée pour les appels Java, Apigee utilise la règle de sécurité par défaut pour le code Java ou Python personnalisé.

Fichier de règle de sécurité

Les exemples suivants présentent le contenu d'un exemple de fichier de règle de sécurité.

Les lignes ci-dessous spécifient l'emplacement du code d'un appel Java personnalisé et accordent toutes les autorisations sur répertoire.

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;
}

Ces lignes spécifient l'emplacement du code d'un appel Jython/Python personnalisé et accordent des autorisations de lecture sur le répertoire.

// 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";
}

Exemples

Les exemples suivants montrent comment effectuer des tâches spécifiques liées aux règles de sécurité personnalisées pour les appels Java.

Créer une règle de sécurité personnalisée pour les appels Java

La commande suivante crée une règle de sécurité personnalisée pour les appels Java, définie dans le fichier de ressources nommé strict-security.policy.

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

Afficher toutes les règles de sécurité

La commande suivante vous permet d'afficher toutes les règles de sécurité personnalisées pour les appels Java dans votre API.

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

Afficher le contenu d'un fichier de règles de sécurité

La commande suivante permet d'obtenir le contenu d'un fichier de règle de sécurité individuel et de l'afficher.

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

Mettre à jour une règle limitée à un environnement

La commande suivante met à jour une règle de sécurité limitée à un environnement.

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

Supprimer une règle de sécurité limitée à un environnement

La commande suivante supprime une règle de sécurité limitée à un environnement.

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