App-Gateway

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

Fehlermeldung "Meine Antwort" 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 den Anforderungen, die an einen Upstream-Anwendungsserver weitergeleitet werden, Header hinzu. Einer dieser Header, idcs_user_display_name, weist möglicherweise ungültige Zeichen auf, wie vom neueren RFC definiert. Dies hängt von den Werten ab, die für Vorname und Nachname des Identitätsdomainbenutzers festgelegt wurden. Dieser 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 erzwingen, lehnen die Anforderung mit der Antwort ab: 400 Fehlerhafte Anforderung: ungültiger Headerwert. Hinweis: Die genaue Antwort hängt von dem verwendeten Application Server ab.

Entfernen Sie nicht druckbare Zeichen.

App-Gatewayserver reflektiert keine Änderungen

Wenn die Änderungen, die Sie in IAM im App-Gatewayserver vorgenommen haben, nicht angezeigt werden, führen Sie den folgenden Vorgang 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 die 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. Im App-Gateway 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 die Fehlernummer 500 reagiert.

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[[Gateway-Server 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-Befehlaus, und stellen Sie eine Verbindung zur IAM-Instanz und zu Ihrer Anwendung vom App-Gatewayserver aus her.
    telnet <idcs-tenant>.identity.oraclecloud.com 443

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

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