Ein JSON-Webtoken (JWT) ist ein standardisiertes, optional validiertes und/oder verschlüsseltes Format, das für die sichere Übertragung von Informationen zwischen zwei Parteien verwendet wird.
In der HTTP-Zugriffsphase können Benutzer die Aktion definieren, um JWT von Clients zu validieren und an Backendserver zu übergeben oder davon zu entfernen.
Load Balancer-Regeln unterstützen die Verwendung von regulären Ausdrücken (Regex) für Übereinstimmungstypen. Regex-Muster nach PCRE-Art werden mit einigen Einschränkungen für anspruchsvollere Anwendungsfälle unterstützt. Wenn Regex in Übereinstimmungsbedingungen verwendet wird, werden benannte erfassende Gruppierungskonstrukte unterstützt. Siehe Reguläre Ausdrücke in Load Balancer-Regeln.
Voraussetzungen
Stellen Sie sicher, dass ein virtueller HTTP-Server von Layer 7 verfügbar ist. Siehe Hinzufügen von virtuellen HTTP-Servern der Schicht 7.
Prozedur
- Öffnen Sie den virtuellen HTTP-Server der Schicht 7.
- Klicken Sie im Abschnitt „Load Balancer-Regeln“ neben „HTTP-Zugriffsphase“ auf , um die Load Balancer-Regeln für die Phase „HTTP-Anforderungsrewrite“ zu konfigurieren.
- Wählen Sie im Dropdown-Menü eine Übereinstimmungsbedingung aus. Übereinstimmungsbedingungen werden verwendet, um den Anwendungsdatenverkehr durch die Load Balancer zuzuordnen. Mehrere Übereinstimmungsbedingungen können in einer Load Balancer-Regel angegeben werden. Jede Übereinstimmungsbedingung definiert ein Kriterium für den Anwendungsdatenverkehr.
Unterstützte Übereinstimmungsbedingung Beschreibung HTTP-Anforderungsmethode Zuordnen einer HTTP-Anforderungsmethode. http_request.method – zuzuordnender Wert
HTTP-Anforderungs-URI Zuordnen einer HTTP-Anforderungs-URI ohne Abfrageargumente. http_request.uri – zuzuordnender Wert
Argumente des HTTP-Anforderungs-URI Zuordnen des Abfragearguments eines HTTP-Anforderungs-URI. http_request.uri_arguments – zuzuordnender Wert
HTTP-Anforderungsversion Zuordnen einer HTTP-Anforderungsversion. http_request.version – zuzuordnender Wert
HTTP-Anforderungs-Header Zuordnen eines beliebigen HTTP-Anforderungs-Headers. http_request.header_name – zuzuordnender Header-Name
Http_request.header_value – zuzuordnender Wert
HTTP-Anforderungs-Cookie Zuordnung eines beliebigen HTTP-Anforderungs-Cookies. http_request.cookie_value – zuzuordnender Wert
HTTP-Anforderungstext Zuordnen des Inhalts eines HTTP-Anforderungstexts. http_request.body_value – zuzuordnender Wert
Port des TCP-Headers Zuordnen einer TCP-Quelle oder des Zielports. Tcp_header.source_port – zuzuordnender Quellport
tcp_header.destination_port – zuzuordnender ZielportQuelle des IP-Headers Entspricht den IP-Header-Textfeldern in HTTP-Nachrichten. Der Quelltyp muss entweder eine einzelne IP-Adresse, ein Bereich von IP-Adressen oder eine Gruppe sein. Siehe Hinzufügen einer Gruppe. - Wenn „Quelle des IP-Headers“ ausgewählt ist und der Quelltyp „IP-Adresse“ lautet, sollte die IP-Adresse der Quelle der HTTP-Nachricht mit den in Gruppen konfigurierten IP-Adressen übereinstimmen. Sowohl IPv4- als auch IPv6-Adressen werden unterstützt.
- Wenn „Quelle des IP-Headers“ ausgewählt ist und der Quelltyp „Gruppe“ lautet, wählen Sie die Gruppe im Dropdown-Menü aus.
Ip_header.source_address – zuzuordnende Quelladresse
ip_header.destination_address – zuzuordnende ZieladresseVariable Erstellen einer Variablen und Zuweisen eines Wertes zu der Variablen. Client-SSL Zuordnen der Client-SSL-Profil-ID. ssl_profile_id – zuzuordnender Wert
Groß-/Kleinschreibung beachten Festlegen eines Flags für den HTTP-Kopfzeilenwertvergleich. Bei dem Flag wird die Groß-/Kleinschreibung beachtet. Bei Auswahl von „true“ ist die Groß-/Kleinschreibung beim Vergleich des HTTP-Textwerts ausschlaggebend. - Wählen Sie in der Dropdown-Liste einen Übereinstimmungstyp aus: beginnt mit, endet mit, gleich, enthält, entspricht Regex.
- Geben Sie, falls erforderlich, den URI ein.
- Wählen Sie in der Dropdown-Liste eine Übereinstimmungsstrategie aus:
Übereinstimmungsstrategie Beschreibung Beliebig Entweder der Host oder der Pfad kann übereinstimmen, damit diese Regel als Übereinstimmung betrachtet wird. Alle Sowohl der Host als auch der Pfad müssen übereinstimmen, damit diese Regel als Übereinstimmung betrachtet wird.
- Wählen Sie im Dropdown-Menü eine Aktion aus:
Aktion Beschreibung JWT-Authentifizierung JSON-Webtoken (JWT) ist ein offener Standard, der eine kompakte und eigenständige Möglichkeit für eine sichere Übertragung von Informationen zwischen den Parteien als ein JSON-Objekt definiert. Diese Informationen können verifiziert werden und vertrauenswürdig sein, da sie digital signiert sind.- Bereich: eine Beschreibung des geschützten Bereichs. Wenn kein Bereich angegeben ist, zeigen Clients häufig einen formatierten Hostnamen an. Der konfigurierte Bereich wird zurückgegeben, wenn eine Clientanforderung mit dem HTTP-Status 401 abgelehnt wird. Die Antwort lautet: „WWW-Authentication: Bearer realm=<realm>“.
- Token: Dieser Parameter ist optional. Der Load Balancer durchsucht jeden angegebenen Token einzeln nach der JWT-Meldung, bis sie gefunden wurde. Falls sie nicht gefunden wird oder dieses Textfeld nicht konfiguriert ist, durchsucht der Load Balancer standardmäßig den Bearer-Header in der HTTP-Anfrage „Authorization: Bearer <token>“
- Schlüsseltyp: symmetrischer Schlüssel oder asymmetrischer öffentlicher Schlüssel (Zertifikats-ID)
- JWT beibehalten: Dies ist ein Flag zum Beibehalten und Übergeben von JWT an den Backendserver. Wenn diese Option deaktiviert ist, wird der JWT-Schlüssel für den Backendserver entfernt.
Verbindungsabbruch Wenn das Ablehnen aktiviert und der Verbindungsabbruch konfiguriert ist, werden alle Anforderungen verworfen, die nicht mit der angegebenen Übereinstimmungsbedingung übereinstimmen. Anforderungen, die der angegebenen Übereinstimmungsbedingung entsprechen, sind zulässig.
Variablenzuweisung Ermöglicht Benutzern das Zuweisen eines Werts zu einer Variablen in der HTTP-Zugriffsphase, sodass das Ergebnis als Bedingung in anderen Load Balancer-Regelphasen verwendet werden kann.
- Klicken Sie auf Speichern und Anwenden.