App Gateway

Saiba como solucionar problemas comuns do App Gateway.

Minha Mensagem de Erro de Resposta Contém: 400 Solicitação Inválida: valor de cabeçalho inválido

Saiba a causa comum quando uma mensagem de erro de resposta contém: 400 Bad Request: invalid header value.

O App Gateway adiciona cabeçalhos às solicitações com proxy a um Servidor de Aplicativos upstream. Um desses cabeçalhos, idcs_user_display_name, pode ter caracteres inválidos conforme definido pela RFC mais recente, dependendo dos valores definidos para o Nome e o Sobrenome do usuário do domínio de identidades. Essa nova RFC limita os caracteres permitidos a caracteres US-ASCII imprimíveis (ou seja, 0x21 - 0x7E e os caracteres de tabulação de espaço e horizontal). Consulte Sintaxe e Roteamento de Mensagem RFC 7230 HTTP/1.1.

Os Servidores de Aplicativos que impõem a RFC mais recente rejeitarão a solicitação com a resposta: 400 Solicitação Inválida: valor de cabeçalho inválido. Observação: A resposta exata depende do Servidor de Aplicativos que está sendo usado.

Remova os caracteres não imprimíveis.

O Servidor do App Gateway Não Reflete Alterações

Quando você não puder ver as alterações feitas no serviço IAM no servidor do App Gateway, tente o seguinte.

As alterações feitas nos aplicativos empresariais e nas definições do App Gateway em Domínios de Identidade talvez não sejam refletidas imediatamente no App Gateway porque ele armazena no cache as informações dos Domínios de Identidade, como recursos, políticas de autenticação e valores de cabeçalho de aplicativos empresariais.

O App Gateway entra em contato com o serviço IAM usando agentes para coletar informações de host e porta. Quando você inicia o App Gateway, o servidor NGINX é configurado automaticamente com essas informações. Qualquer alteração no serviço IAM é periodicamente sondada pelos agentes.

Por padrão, o tempo de atualização da política e dos cabeçalhos é de 3.600 segundos (1 hora) cada. Para alterar esses valores, acesse o servidor do App Gateway e edite o arquivo /usr/local/nginx/conf/cloudgate.config. Altere o valor ttl para policy e headers na seção caching de acordo com o exemplo a seguir e reinicie o servidor e o agente do App Gateway.
"caching" : {
  "minimumTtl"            : 300,
  "headers"               : { "ttl": 3600 },
  "discovery"             : { "ttl": 3600 },
  "policy"                : { "ttl": 3600},
  "tenantKeys"            : { "ttl": 86400 }
}
Você também pode alterar o intervalo de sondagem dos agentes. Por padrão, o tempo de atualização do agente para obter a nova configuração do App Gateway do serviço IAM é de 60 segundos, o que é o tempo mínimo suportado. No arquivo /usr/local/nginx/conf/cloudgate.config, altere o valor pollIntervalSecs na seção agentConfig, como no exemplo:
"agentConfig": {
    "pollIntervalSecs"    : 60,
    "daemon"         : true,
    "logLevel"        : "warn",
    "logFolder"        : "" 
}
Se você quiser que as alterações na configuração do Aplicativo Empresarial sejam refletidas imediatamente, interrompa o servidor do App Gateway e inicie o servidor.
/scratch/oracle/cloudgate/home/bin/cg-stop
/scratch/oracle/cloudgate/home/bin/cg-start
Se você quiser que as alterações na configuração do App Gateway sejam refletidas imediatamente, interrompa o agente e inicie-o.
/scratch/oracle/cloudgate/home/bin/agent-stop
/scratch/oracle/cloudgate/home/bin/agent-start

Mensagem Invalid_session

Quando o App Gateway não pode se comunicar corretamente com o serviço IAM, você encontra mensagens invalid_session nos arquivos de log de erros do App Gateway.

Veja a seguir um exemplo de mensagem invalid_session no arquivo error.log:

www-authenticate: Bearer error="invalid_session", error_description="Authentication Failure

Isso pode ser por causa da maneira como o App Gateway processa uma solicitação do cliente para um recurso protegido. O App Gateway usa subsolicitações NGINX para fazer solicitações ao serviço IAM e, em seguida, o App Gateway exige que o resolvedor NGINX do Linux seja configurado de forma adequada para permitir que essas subsolicitações funcionem corretamente.

  1. Verifique se a definição do resolvedor no arquivo /usr/local/nginx/conf/nginx-cg-sub.conf está definida com o IP correto.
  2. Verifique se o nome do tenant no arquivo /usr/local/nginx/conf/cloudgate.config está configurado corretamente.

GET 127.0.0.1:53 Erro de Comando

Os arquivos de log de erros contêm o comando GET 127.0.0.1:53, que responde ao número de erro 500.

Como o App Gateway faz subsolicitações a um servlet interno, ele exige que a máquina virtual atenda na porta 53.

O servidor do App Gateway deve se comunicar com ele mesmo por meio do endereço IP 127.0.0.1 e da porta 53.

Se você estiver executando o App Gateway em um software de máquina virtual, configure o encaminhamento dessa porta do host para o convidado. Consulte Configurando Regras de Encaminhamento de Porta.

O Servidor do App Gateway não pode se comunicar com o IAM

Quando seu servidor A[[[ Gateway não puder se comunicar com o serviço IAM, siga estas etapas para usar um cliente SSH, como PuTTY, e as credenciais a seguir para acessar o servidor App Gateway.


  1. Execute o comando sudo su - para acessar como root e, quando solicitado, forneça a senha oracle.


  2. Instale o telnet executando o seguinte comando:
    yum install telnet

  3. Execute o comando telnet a seguir e tente estabelecer uma conexão com sua instância do serviço IAM e seu aplicativo no servidor do App Gateway.
    telnet <idcs-tenant>.identity.oraclecloud.com 443

    Se o telnet não puder estabelecer conexão com o IAM, entre em contato com o administrador da rede para aplicar qualquer outra configuração de rede a fim de permitir que o servidor do App Gateway estabeleça conexão com a instância do serviço IAM.

  4. Execute o comando exit para fazer log-out da conta raiz.