• Beitrags-Autor:
  • Beitrags-Kategorie:Nginx
  • Lesedauer:9 min Lesezeit

NGINX gibt die Veröffentlichung des neuen NGINX Plus Release 29 (R29) bekannt. NGINX Plus basiert auf der NGINX Open Source Variante und ist der einzige All-in-one-Software-Webserver, Load Balancer, Reverse-Proxy, Content-Cache und API-Gateway. 
Zu den neuesten Funktionen von R26 gehören unter anderem: 

Allgemeiner Hinweis

Wird ein Upgrade einer anderen Version als NGINX Plus Release 28 (R28) durchgeführt, sollte vorab unbedingt der Abschnitt “Wichtige Verhaltensänderungen” in früheren Ankündigungsblogs für alle Versionen zwischen der aktuellen und dieser Version beachtet werden. 

Änderungen am Verpackungs-Repository

Das alte Paket-Repository plus-pkgs.nginx.com wird mit der Veröffentlichung von NGINX Plus R29 sofort außer Betrieb genommen. Dieses Repository wurde seit NGINX Plus R25 nicht aktualisiert und es wird dringend empfohlen, das Paket-Repository pkgs.nginx.com zu verwenden, das in NGINX Plus R24 eingeführt wurde .

Neue Funktionen im Detail

Unterstützung für das MQTT-Protokoll

Message Queuing Telemetry Transport (MQTT) ist ein leichtes Protokoll, das für die Kommunikation zwischen Geräten im Internet der Dinge genutzt wird. Es ermöglicht seinen Nutzern, Nachrichten zu einem bestimmten Thema zu veröffentlichen sowie auch andere Themen zu abonnieren. Dadurch erhalten abonnierte Kunden zu all diesen Themen aktuell veröffentlichte Nachrichten, das einen effizienten und fehlertoleranten Datenaustausch zwischen vielen Geräten und Diensten ermöglicht. 

Das Herzstück einer MQTT-Architektur ist ein sogenannter Broker. Dies ist ein Server, der dafür verantwortlich ist, Kunden und alle von ihnen abonnierten Themen zu verfolgen, eingehende Nachrichten zu verarbeiten und diese Mitteilungen an die dazu geeigneten Systeme weiterzuleiten. NGINX Plus R29 unterstützt MQTT 3.1.1 und MQTT 5.0 . Es fungiert als Proxy zwischen Kunden und Brokern, was die Systemarchitektur einfacher gestaltet, Aufgaben entlastet und Kosten minimiert.

Der anfängliche MQTT-Funktionssatz ermöglicht Folgendes: 

  • MQTT-Broker-Lastausgleich
  • Sitzungspersistenz (erneutes Verbinden von Clients mit demselben Broker)
  • TLS-Terminierung
  • Authentifizierung des Client-Zertifikats
  • Parsen und Umschreiben von CONNECT-Nachrichten

Das MQTT-Protokoll definiert mehrere Nachrichtentypen, darunter CONNECT, PUBLISH und SUBSCRIBE. Das neue Release von NGINX Plus (R29) kann Teile der MQTT CONNECT-Nachrichten aktiv analysieren sowie neu schreiben und ermöglicht so Konfigurationsszenarien, die bis dato nur mit benutzerdefinierten Skripten möglich waren. 

Das Parsen und Umschreiben von MQTT-Nachrichten muss im Stream-Kontext einer NGINX-Konfigurationsdatei definiert werden und wird mit den Modulen ngx_stream_mqtt_preread_module
und ermöglicht ngx_stream_mqtt_filter_module.

SAML-Unterstützung für Authentifizierung und Autorisierung

SAML (Security Assertion Markup Language) ist ein offener Föderationsstandard, der es ermöglicht, Nutzer für den Zugriff auf eine Ressource zu authentifizieren und diese Authentifizierungsinforationen weiterzugeben, gemeinsam mit den Zugriffsrechten des Benutzers auf diese Ressource, zu Dienstanbieter zur Autorisierung. 

Mit einer langen Erfolgsgeschichte als sichere Möglichkeit zum Austausch von Identitätsdaten ist SAML ein weit verbreitetes Protokoll für den Austausch von Authentifizierungs- und Autorisierungsinformationen zwischen einem IdP und einem SP.

Zu den Hauptgründen, warum sich Unternehmen und Regierungsinstitutionen für die Einführung von SAML entscheiden, gehören:

  • Effektive Verwaltung einer großen Menge an Identitäten
  • Verbesserte, konsistente und einheitliche Identitätssicherheit für Kunden und Mitarbeiter
  • Verbesserte betriebliche Effizienz durch Standardisierung von Identitätsmanagementprozessen
  • Effizienter Umgang mit der Einhaltung gesetzlicher Vorschriften
Außerdem bietet SAML noch folgende Vorteile:

Mit der SSO-Integration und der Single-Point-Authentifizierungsüberprüfung beim IdP ermöglicht SAML Benutzern eine einzige Authentifizierung, die auf alle verbundenen Dienste zugreift. Dies verbessert die Benutzererfahrung und spart Zeit, da sich Benutzer nicht mehr mehrere Anmeldeinformationen für verschiedene Anwendungen merken müssen.

Abhängig von den Sicherheits- und Authentifizierungsrichtlinien Ihrer Organisation können sich Benutzer mithilfe eines SSO-Authentifizierungsschemas entweder an der SP-Schnittstelle (SP-initiiertes SSO) oder direkt an der IdP-Schnittstelle (IdP-initiiertes SSO) anmelden. Dies reduziert Sicherheitsrisiken aufgrund potenziell schwacher und/oder sich wiederholender Passwörter.

SAML hilft Unternehmen dabei, die Verantwortung für das Identitätsmanagement an einen vertrauenswürdigen IdP zu verlagern, wodurch die Kosten für die Pflege von Kontoinformationen und die damit verbundenen Kosten gesenkt werden.

SAML wurde mit dem Prinzip entwickelt, die Sicherheit (so weit wie möglich) unabhängig von der Anwendungslogik zu machen. Es ist ein standardisiertes Protokoll, das von fast allen IdPs und Zugriffsverwaltungssystemen unterstützt wird. Es abstrahiert das Sicherheits-Framework von Plattformarchitekturen und bestimmten Anbieterimplementierungen, was robuste Sicherheit und zuverlässige Integration zwischen Systemen ermöglicht.

Die aktuelle Referenzimplementierung von SAML verwendet SAML 2.0 und wird mit dem NGINX JavaScript (njs)-Framework erstellt. In dieser Implementierung fungiert NGINX Plus als SAML SP und ermöglicht so die Teilnahme an einem SSO-Setup mit einem SAML-IdP. Die aktuelle Implementierung hängt auch vom Schlüsselwertspeicher ab, der eine vorhandene NGINX Plus-Funktion ist und daher ohne zusätzliche Modifikationen nicht für NGINX Open Source geeignet ist.

Native OpenTelemetry

OpenTelemetry (OTel) ist eine Technologie und ein Standard, die zur Überwachung, Nachverfolgung, Fehlerbehebung und Optimierung von Anwendungen verwendet werden können. OTel sammelt Telemetriedaten aus verschiedenen Quellen, z. B. Proxys, Anwendungen oder anderen Diensten in einem bereitgestellten Anwendungsstapel.

Als protokollbewusster Reverse-Proxy und Load-Balancer ist NGINX ideal positioniert, um Telemetrieaufrufe zur Verfolgung von Anwendungsanfragen und -antworten zu initiieren. Während OTel-Module von Drittanbietern schon seit einiger Zeit verfügbar sind, freuen wir uns, die native Unterstützung für OTel in NGINX Plus mit einem neuen dynamischen Modul ankündigen zu können .

Das neue Modul ngx_otel_module kann mithilfe des Pakets installiert nginx-plus-module-otel werden und bietet mehrere wichtige Verbesserungen gegenüber Modulen von Drittanbietern, darunter:

Die meisten OTel-Implementierungen reduzieren die Leistung der Anforderungsverarbeitung um bis zu 50 %, wenn die Ablaufverfolgung aktiviert ist. Unser neues natives Modul begrenzt diese Auswirkungen auf etwa 10–15 %.

Das Einrichten und Konfigurieren der Telemetrieerfassung kann direkt in den NGINX-Konfigurationsdateien erfolgen.

Die Möglichkeit, eine bestimmte Sitzung per Cookie/Token zu verfolgen und das Modul dynamisch über die NGINX Plus-API und Schlüsselwertspeichermodule zu steuern.

Experimentelle QUIC+HTTP/3-Pakete

Nach Ankündigung von Vorschau-Binärpaketen für NGINX Open Source kündigt NGINX experimentelle QUIC-Pakete für NGINX Plus R29 an. Dadurch ist es möglich, HTTP/3 mit NGINX Plus zu testen und zu evaluieren.

Mit einem neuen zugrunde liegenden Protokollstapel bringt HTTP/3 UDP und QUIC auf die Transportschicht. QUIC ist ein verschlüsseltes Transportprotokoll, das TCP verbessern soll, indem es Verbindungsmultiplexing ermöglicht und Probleme wie Head-of-Line-Blockierung löst. Es implementiert und erweitert eine Reihe von TCP-Funktionen von HTTP/1.1 und HTTP/2, einschließlich Verbindungsaufbau, Überlastungskontrolle und zuverlässige Zustellung. QUIC integriert auch TLS als integralen Bestandteil, im Gegensatz zu HTTP/1.1 und HTTP/2, die TLS als separate Schicht haben. Das bedeutet, dass HTTP/3-Nachrichten von Natur aus sicher sind, da sie standardmäßig über eine verschlüsselte Verbindung gesendet werden.

Typischerweise verlässt sich NGINX Plus für sichere Kommunikation und kryptografische Funktionalität auf OpenSSL und nutzt die SSL/TLS-Bibliotheken, die mit Betriebssystemen geliefert werden. Da die TLS-Schnittstellen von QUIC zum Zeitpunkt des Verfassens dieses Artikels jedoch nicht von OpenSSL unterstützt werden, sind Bibliotheken von Drittanbietern erforderlich, um die fehlende TLS-Funktionalität bereitzustellen, die für HTTP/3 erforderlich ist.

Um dieses Problem auszuräumen, habt NGINX eine OpenSSL-Kompatibilitätsschicht für QUIC entwickelt, wodurch die Notwendigkeit entfällt, TLS-Bibliotheken von Drittanbietern wie quictls, BoringSSL und LibreSSL zu erstellen und zu versenden. Dies hilft dabei, das End-to-End-QUIC+HTTP/3-Erlebnis in NGINX zu verwalten, ohne den Aufwand einer benutzerdefinierten TLS-Implementierung oder die Abhängigkeit von Zeitplänen und Roadmaps von Bibliotheken von Drittanbietern.

Hinweis : Die OpenSSL-Kompatibilitätsschicht ist in den experimentellen NGINX Plus QUIC+HTTP/3-Paketen enthalten und erfordert OpenSSL 1.1.1 oder höher, um TLSv1.3 bereitzustellen (was für das QUIC-Protokoll erforderlich ist). Es implementiert 0-RTT noch nicht.

Jetzt NGINX aktualisieren

Wenn Sie NGINX Plus aktuell in Nutzung haben wird dringend empfohlen, zeitnah ein Upgrade auf NGINX Plus R29 durchzuführen. Zusätzlich zu all den großartigen neuen Funktionen kommt das Upgrade ebenfalls mit zusätzlichen Korrekturen und Verbesserungen. 

Weitere Beispiele der neuen Funktionen sowie ausführlichere Informationen sind im offiziellen Beitrag zum NGINX Release R29 zu finden.