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.
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.
/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 }
}
/usr/local/nginx/conf/cloudgate.config, modificare il valore pollIntervalSecs nella sezione agentConfig come nell'esempio:"agentConfig": {
"pollIntervalSecs" : 60,
"daemon" : true,
"logLevel" : "warn",
"logFolder" : ""
}
/scratch/oracle/cloudgate/home/bin/cg-stop
/scratch/oracle/cloudgate/home/bin/cg-start
/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.
-
Verificare che l'impostazione del resolver nel file
/usr/local/nginx/conf/nginx-cg-sub.confsia impostata sull'IP corretto. -
Verificare che il nome del tenant nel file
/usr/local/nginx/conf/cloudgate.configsia 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.