Gateway applicazioni

Scopri come risolvere i problemi comuni del gateway applicazioni.

Il mio messaggio di errore di risposta contiene: 400 Richiesta non valida: valore intestazione non valido

Imparare la causa comune quando un messaggio di errore di risposta contiene: 400 Bad Request: invalid header value.

Gateway applicazioni aggiunge intestazioni alle richieste sottoposte a proxy a un server applicazioni a monte. Una di queste intestazioni, idcs_user_display_name, potrebbe avere caratteri non validi come definiti dalla RFC più recente, a seconda dei valori impostati per il nome e il cognome dell'utente del dominio di Identity. Questa nuova RFC limita i caratteri consentiti alla stampa di caratteri US-ASCII (cioè, 0x21 - 0x7E e i caratteri di tabulazione spaziosa e orizzontale). Vedere Sintassi e instradamento dei messaggi HTTP/1.1 di RFC 7230.

Gli Application Server che applicano l'RFC più recente rifiutano la richiesta con la risposta: 400 Richiesta non valida: valore di intestazione non valido. Nota: la risposta esatta dipende dall'Application Server utilizzato.

Rimuovere tutti i caratteri non stampabili.

Il server Gateway applicazioni non riflette le modifiche

Quando non è possibile visualizzare le modifiche apportate in IAM nel server Gateway applicazioni, provare quanto segue.

Le modifiche apportate alle applicazioni enterprise e alle definizioni del gateway applicazioni nei domini di Identity potrebbero non riflettersi immediatamente nel gateway applicazioni perché il gateway applicazioni memorizza nella cache le informazioni dei domini di Identity, ad esempio le risorse, i criteri di autenticazione e i valori di intestazione delle applicazioni enterprise.

Il gateway applicazioni contatta IAM utilizzando gli agenti per raccogliere informazioni su host e porta. Quando avvii App Gateway, il suo server NGINX viene configurato automaticamente con queste informazioni. Il polling di eventuali modifiche a IAM viene eseguito periodicamente dagli agenti.

Per impostazione predefinita, il tempo di aggiornamento del criterio e delle intestazioni è di 3.600 secondi (1 ora) ciascuno. Per modificare questi valori, accedere al server Gateway applicazioni e modificare il file /usr/local/nginx/conf/cloudgate.config. Modificare il valore ttl per policy e headers nella sezione caching come indicato nell'esempio seguente, quindi riavviare sia il server Gateway applicazioni che l'agente.
"caching" : {
  "minimumTtl"            : 300,
  "headers"               : { "ttl": 3600 },
  "discovery"             : { "ttl": 3600 },
  "policy"                : { "ttl": 3600},
  "tenantKeys"            : { "ttl": 86400 }
}
È inoltre possibile modificare l'intervallo di polling degli agenti. Per impostazione predefinita, il tempo di aggiornamento dell'agente per ottenere la nuova configurazione del gateway applicazioni da IAM è di 60 secondi, ovvero il periodo di tempo minimo supportato. Nel file /usr/local/nginx/conf/cloudgate.config, modificare il valore pollIntervalSecs nella sezione agentConfig come nell'esempio:
"agentConfig": {
    "pollIntervalSecs"    : 60,
    "daemon"         : true,
    "logLevel"        : "warn",
    "logFolder"        : "" 
}
Se si desidera che le modifiche apportate alla configurazione dell'applicazione Enterprise si riflettano immediatamente, arrestare il server Gateway applicazioni e avviare il server.
/scratch/oracle/cloudgate/home/bin/cg-stop
/scratch/oracle/cloudgate/home/bin/cg-start
Se si desidera che le modifiche alla configurazione del gateway applicazioni si riflettano immediatamente, arrestare l'agente e avviare l'agente.
/scratch/oracle/cloudgate/home/bin/agent-stop
/scratch/oracle/cloudgate/home/bin/agent-start

Messaggio Invalid_session

Quando il gateway applicazioni non è in grado di comunicare correttamente con IAM, è possibile trovare invalid_session messaggi nei file di log degli errori del gateway applicazioni.

Di seguito è riportato un esempio di messaggioinvalid_session nel file error.log.

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

Ciò può essere dovuto al modo in cui il gateway applicazioni elabora una richiesta client a una risorsa protetta. Gateway applicazioni utilizza le richieste secondarie NGINX per effettuare richieste a IAM, quindi Gateway applicazioni richiede che il resolver NGINX Linux sia configurato in modo appropriato per consentire il corretto funzionamento di queste richieste secondarie.

  1. Verificare che l'impostazione del resolver nel file /usr/local/nginx/conf/nginx-cg-sub.conf sia impostata sull'IP corretto.
  2. Verificare che il nome del tenant nel file /usr/local/nginx/conf/cloudgate.config sia configurato correttamente.

Errore comando GET 127.0.0.1:53

I file di log degli errori contengono il comando GET 127.0.0.1:53 che risponde all'errore numero 500.

Poiché Gateway applicazioni effettua richieste secondarie a un servlet interno, Gateway applicazioni richiede alla virtual machine di ascoltare la porta 53.

Il server Gateway applicazioni deve comunicare a se stesso tramite l'indirizzo IP 127.0.0.1 e la porta 53.

Se si esegue Gateway applicazioni in un software virtual machine, configurare la porta in avanti per questa porta dall'host al guest. Vedere Configurazione delle regole di inoltro porta.

Il server gateway applicazioni non può comunicare con IAM

Quando il server gateway A[[ non è in grado di comunicare con IAM, attenersi alla procedura riportata di seguito per utilizzare un client SSH come PuTTY e le credenziali riportate di seguito per connettersi al server gateway applicazioni.


  1. Eseguire il comando sudo su - per eseguire l'accesso come root e, quando richiesto, fornire la password oracle.


  2. Installare telnet eseguendo il seguente comando:
    yum install telnet

  3. Eseguire il comando telnet riportato di seguito e provare a stabilire una connessione all'istanza IAM e all'applicazione dal server Gateway applicazioni.
    telnet <idcs-tenant>.identity.oraclecloud.com 443

    Se telnet non è in grado di connettersi a IAM, contattare l'amministratore di rete per applicare qualsiasi altra configurazione di rete per consentire al server Gateway applicazioni di stabilire la connessione con l'istanza IAM.

  4. Eseguire il comando exit per eseguire il logout dall'account root.