App-Gateway

Erfahren Sie, wie Sie allgemeine Probleme mit dem App-Gateway beheben.

Meine Antwortfehlermeldung enthält: 400 Fehlerhafte Anforderung: ungültiger Headerwert

Erfahren Sie die allgemeine Ursache, wenn eine Antwortfehlermeldung Folgendes enthält: 400 Bad Request: invalid header value.

Das App-Gateway fügt Header zu den Anforderungen hinzu, die über einen Proxy an einen Upstream-Anwendungsserver übertragen werden. Einer dieser Header, idcs_user_display_name, kann ungültige Zeichen aufweisen, wie von der neueren RFC definiert, je nach den für Vorname und Nachname des Identitätsdomainbenutzers festgelegten Werten. Diese neue RFC begrenzt die zulässigen Zeichen auf druckbare US-ASCII-Zeichen (d.h. 0x21 - 0x7E sowie Leerzeichen und horizontale Tabulatorzeichen). Siehe RFC 7230 HTTP/1.1 Message Syntax and Routing.

Anwendungsserver, die den neueren RFC durchsetzen, lehnen die Anforderung mit der Antwort ab: 400 Ungültige Anforderung: ungültiger Headerwert. Hinweis: Die genaue Antwort hängt vom verwendeten Application Server ab.

Entfernen Sie nicht druckbare Zeichen.

App-Gatewayserver reflektiert keine Änderungen

Wenn die Änderungen, die Sie in IAM vorgenommen haben, auf dem App-Gatewayserver nicht angezeigt werden, führen Sie die folgenden Schritte aus.

Änderungen, die Sie an Unternehmensanwendungen und App-Gatewaydefinitionen in Identitätsdomains vornehmen, werden möglicherweise nicht sofort im App-Gateway widergespiegelt, da das App-Gateway Identitätsdomaininformationen wie Ressourcen, Authentifizierungs-Policys und Headerwerte von Unternehmensanwendungen cacht.

Das App-Gateway kontaktiert IAM mit Agents, um Host- und Portinformationen zu erfassen. Wenn Sie das App-Gateway starten, wird der NGINX-Server automatisch mit diesen Informationen konfiguriert. Alle Änderungen an IAM werden regelmäßig von den Agents abgefragt.

Standardmäßig beträgt die Aktualisierungszeit für Policys und Header jeweils 3.600 Sekunden (1 Stunde). Um diese Werte zu ändern, melden Sie sich beim App-Gatewayserver an, und bearbeiten Sie die Datei /usr/local/nginx/conf/cloudgate.config. Ändern Sie den Wert ttl für policy und headers im Abschnitt caching gemäß dem folgenden Beispiel, und starten Sie dann sowohl den App-Gatewayserver als auch den Agent neu.
"caching" : {
  "minimumTtl"            : 300,
  "headers"               : { "ttl": 3600 },
  "discovery"             : { "ttl": 3600 },
  "policy"                : { "ttl": 3600},
  "tenantKeys"            : { "ttl": 86400 }
}
Sie können auch das Polling-Intervall der Agents ändern. Standardmäßig beträgt die Aktualisierungszeit des Agent zum Abrufen einer neuen App-Gatewaykonfiguration aus IAM 60 Sekunden. Das ist die minimal unterstützte Zeit. Ändern Sie in der Datei /usr/local/nginx/conf/cloudgate.config den Wert pollIntervalSecs im Abschnitt agentConfig wie im Beispiel:
"agentConfig": {
    "pollIntervalSecs"    : 60,
    "daemon"         : true,
    "logLevel"        : "warn",
    "logFolder"        : "" 
}
Wenn die Änderungen in der Unternehmensanwendungskonfiguration sofort widergespiegelt werden sollen, stoppen Sie den App-Gatewayserver, und starten Sie den Server dann.
/scratch/oracle/cloudgate/home/bin/cg-stop
/scratch/oracle/cloudgate/home/bin/cg-start
Wenn die Änderungen in der App-Gatewaykonfiguration sofort widergespiegelt werden sollen, stoppen Sie den Agent, und starten Sie ihn dann wieder.
/scratch/oracle/cloudgate/home/bin/agent-stop
/scratch/oracle/cloudgate/home/bin/agent-start

Invalid_session Nachricht

Wenn das App-Gateway nicht richtig mit IAM kommunizieren kann, finden Sie invalid_session-Meldungen in den Fehlerlogdateien des App-Gateways.

Im Folgenden finden Sie ein Beispiel für eine invalid_session-Meldung in der Datei error.log:

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

Diese Meldung kann durch die Art verursacht werden, mit der das App-Gateway eine Clientanforderung an eine geschützte Ressource verarbeitet. Das App-Gateway verwendet NGINX-Unteranforderungen, um Anforderungen an IAM zu stellen. In diesem Fall muss der Linux-NGINX-Resolver entsprechend konfiguriert sein, damit diese Unteranforderungen ordnungsgemäß funktionieren.

  1. Prüfen Sie, ob die Resolver-Einstellung in der Datei /usr/local/nginx/conf/nginx-cg-sub.conf auf die richtige IP gesetzt ist.
  2. Prüfen Sie, ob der Mandantenname in der Datei /usr/local/nginx/conf/cloudgate.config korrekt konfiguriert ist.

GET 127.0.0.1:53-Befehlsfehler

Die Fehlerlogdateien enthalten den Befehl GET 127.0.0.1:53, der auf Fehlernummer 500 antwortet.

Da das App-Gateway Unteranforderungen an ein internes Servlet sendet, muss die virtuelle Maschine den Port 53 überwachen.

Der App-Gatewayserver muss über die IP-Adresse 127.0.0.1 und den Port 53 mit sich selbst kommunizieren.

Wenn Sie das App-Gateway in einer VM-Software ausführen, konfigurieren Sie die Portweiterleitung für diesen Port vom Host zum Gast. Siehe Portweiterleitungsregeln konfigurieren.

App-Gatewayserver kann nicht mit IAM kommunizieren

Wenn Ihr A[[[-Gatewayserver nicht mit IAM kommunizieren kann, führen Sie die folgenden Schritte aus, um einen SSH-Client wie PuTTY und die folgenden Zugangsdaten für die Anmeldung beim App-Gatewayserver zu verwenden.


  1. Führen Sie den Befehl sudo su - aus, um sich als root anzumelden, und geben Sie bei Aufforderung das oracle-Kennwort an.


  2. Installieren Sie telnet, indem Sie den folgenden Befehl ausführen:
    yum install telnet

  3. Führen Sie den folgenden telnet-Befehl aus, und stellen Sie eine Verbindung zur IAM-Instanz und zur Anwendung vom App-Gatewayserver her.
    telnet <idcs-tenant>.identity.oraclecloud.com 443

    Wenn telnet keine Verbindung zu IAM herstellen kann, wenden Sie sich an den Netzwerkadministrator, um eine andere Netzwerkkonfiguration anzuwenden, damit der App-Gatewayserver eine Verbindung zur IAM-Instanz herstellen kann.

  4. Führen Sie den Befehl exit aus, um sich vom Root-Account abzumelden.