Como adicionar uma política de segurança de chamada Java personalizada

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

O que é uma política de segurança de chamada Java personalizada?

As chamadas Java permitem que você personalize o comportamento da API usando código Java. Quando você implementa uma chamada Java, a Apigee define permissões padrão para a API usando as políticas de permissão de Java. Na Apigee híbrida, é possível alterar as permissões padrão criando uma política de segurança de chamada Java personalizada.

É possível criar uma política personalizada de segurança de chamadas Java usando um recurso, definido em um arquivo de recurso do tipo securityPolicy. O recurso é configurado no nível do ambiente. O arquivo de recursos pode ter qualquer nome, mas é preciso adicionar o sufixo .policy ao nome do arquivo de política de Java personalizado. Por exemplo: strict-security.policy.

O comando a seguir adiciona um arquivo de recurso chamado 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
Os arquivos da política de segurança são compatíveis com a mesma sintaxe da política de segurança Java padrão. Consulte Implementação de políticas padrão e sintaxe do arquivo de políticas.

Depois de criar um arquivo de política de segurança que define uma política personalizada de chamada Java, o ambiente de execução da Apigee pode detectar a política e usar as permissões personalizadas definidas por ela. Se não houver uma política personalizada de chamada Java, a Apigee usará a política de segurança padrão para código Java ou Python personalizado.

Arquivo de política de segurança

Os exemplos a seguir mostram um conteúdo de amostra de um arquivo de política de segurança.

As linhas abaixo especificam a localização do código de uma chamada Java personalizada e concedem todas as permissões ao diretório.

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

Essas linhas especificam a localização do código para uma frase de destaque Jython/Python personalizada e concedem permissões de leitura ao diretório.

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

Exemplos

Os exemplos a seguir mostram como executar tarefas específicas relacionadas a políticas de segurança de chamadas Java personalizadas.

Criar uma política de segurança da chamada Java personalizada

O comando a seguir cria uma política de segurança de chamada Java personalizada, definida no arquivo de recursos chamado 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

Visualizar todas as políticas de segurança

O comando a seguir permite visualizar todas as políticas de segurança de chamadas Java personalizadas na API.

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

Visualizar o conteúdo de um arquivo de política de segurança

O comando a seguir recebe o conteúdo de um arquivo de política de segurança individual para que você possa visualizá-lo.

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

Atualizar uma política com escopo para um ambiente

O comando a seguir atualiza uma política de segurança com escopo para um ambiente.

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

Excluir a política de segurança com escopo para um ambiente

O comando a seguir exclui uma política de segurança com escopo para um ambiente.

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