Adicionar uma política de segurança JavaCallout personalizada

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

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

A política JavaCallout permite-lhe personalizar o comportamento da sua API através de código Java. Quando implementa o JavaCallout, o Apigee define autorizações predefinidas para a API através de políticas de autorização Java. No Apigee hybrid, pode alterar as autorizações predefinidas criando uma política de segurança JavaCallout personalizada.

Pode criar uma política de segurança JavaCallout personalizada através de um recurso, que é definido num ficheiro de recursos do tipo securityPolicy. O recurso está configurado ao nível do ambiente. O ficheiro de recursos pode ter qualquer nome, mas tem de adicionar o sufixo .policy ao nome do ficheiro da política Java personalizada. Por exemplo: strict-security.policy.

O comando seguinte adiciona um ficheiro de recursos denominado 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 ficheiros de política de segurança suportam a mesma sintaxe que a política de segurança Java padrão; consulte Implementação da política predefinida e sintaxe do ficheiro de política.

Depois de criar um ficheiro de política de segurança que defina uma política JavaCallout personalizada, o tempo de execução do Apigee pode detetar a política e usar as autorizações personalizadas que a política define. Se não estiver presente nenhuma política JavaCallout personalizada, o Apigee usa a política de segurança predefinida para código Java ou Python personalizado.

Ficheiro de política de segurança

Os exemplos seguintes mostram conteúdo de exemplo de um ficheiro de política de segurança.

As linhas abaixo especificam a localização do código para uma política JavaCallout personalizada e concedem todas as autorizaçõ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;
}

Estas linhas especificam a localização do código para um Callout Jython/Python personalizado e concedem autorizaçõ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 seguintes mostram como realizar tarefas específicas relacionadas com políticas de segurança JavaCallout personalizadas.

Crie uma política de segurança JavaCallout personalizada

O comando seguinte cria uma política de segurança JavaCallout personalizada, definida no ficheiro de recursos denominado 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

Veja todas as políticas de segurança

O comando seguinte permite-lhe ver todas as políticas de segurança JavaCallout personalizadas existentes na sua API.

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

Veja o conteúdo de um ficheiro de política de segurança

O comando seguinte obtém o conteúdo de um ficheiro de política de segurança individual para que o possa ver.

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

Atualize uma política com âmbito num ambiente

O seguinte comando atualiza uma política de segurança com âmbito num 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

Elimine a política de segurança com âmbito num ambiente

O comando seguinte elimina uma política de segurança com âmbito num ambiente.

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