API7 Enterprise v3.2.15: Multi-Credential-Authentifizierung
September 18, 2024
Da API-Dienste immer komplexer werden, sind traditionelle Zugriffskontrollmethoden, die sich ausschließlich auf IP-Adressen oder grundlegende Anfrageheader verlassen, nicht mehr ausreichend. API7 Enterprise führt das Konzept der "Consumers" ein, das es Entwicklern ermöglicht, Consumers an bestimmte API-Routen oder Dienste zu binden, bei denen dieselben Authentifizierungs-Plugins aktiviert sind. Wenn ein Consumer eine Anfrage stellt, identifiziert das API-Gateway den Consumer anhand der in der Anfrage bereitgestellten Anmeldeinformationen und wendet die entsprechenden Zugriffskontrollrichtlinien gemäß den Bindungsbeziehungen an.
API7 Enterprise v3.2.15 verbessert die bestehenden Consumer-Authentifizierungsmechanismen. Es optimiert die Interaktionen häufig verwendeter Plugins, verbessert die Berechtigungskontrolle und unterstützt mehrere Authentifizierungsanmeldeinformationen pro Plugin. Dies ermöglicht eine flexiblere Verwaltung und Rotation von Anmeldeinformationen.
Optimierte Interaktion von Consumer-Authentifizierungs-Plugins
Sie können problemlos mehrere Authentifizierungsanmeldeinformationen in einem einzigen Authentifizierungs-Plugin hinzufügen. Die Konfiguration wurde von der Codierung auf intuitive Formularoperationen umgestellt, wodurch der Konfigurationsprozess einfacher wird.
Derzeit unterstützt der Consumer die folgenden vier Authentifizierungsmethoden mit mehreren Anmeldeinformationen.
Schlüsselauthentifizierung
Die Schlüsselauthentifizierung ist eine schlüsselbasierte Authentifizierungsmethode. Consumers müssen einen eindeutigen Schlüssel in ihren Anfragen enthalten, der in den Abfragezeichenfolgenparametern oder HTTP-Headern enthalten sein kann. Bei der Konfiguration von Anfragen müssen Consumers sicherstellen, dass der Schlüssel korrekt in den Anfragen enthalten ist.
In der Routen- oder Dienstkonfiguration muss das Key Auth-Plugin mit den entsprechenden Regeln aktiviert werden, um den Schlüssel in der Anfrage zu validieren. Das Gateway überprüft, ob die Anfrage den erwarteten Schlüssel enthält und ob der Schlüssel mit der Konfiguration übereinstimmt. Wenn die Schlüsselvalidierung erfolgreich ist, wird der Anfrage der Zugriff auf den Backend-Dienst gewährt; andernfalls wird die Anfrage abgelehnt.
Basisauthentifizierung
Die Basisauthentifizierung ist eine Methode, die auf einem Benutzernamen und einem Passwort basiert. Consumers müssen Authentifizierungsinformationen, die den Benutzernamen und das Passwort enthalten, in der Anfrage einbinden, die normalerweise im Authorization
-Header der HTTP-Anfrage kodiert sind, aber auch über Abfragezeichenfolgenparameter übergeben werden können, was jedoch aufgrund der möglichen Offenlegung sensibler Informationen nicht empfohlen wird. Consumers müssen sicherstellen, dass die kodierten Authentifizierungsinformationen korrekt in den Anfragen enthalten sind.
In der Routen- oder Dienstkonfiguration muss das Basic Auth-Plugin mit den entsprechenden Regeln aktiviert werden, um die Authentifizierungsinformationen zu validieren. Das Gateway überprüft, ob die Anfrage den Authorization
-Header enthält und ob er dem Format der Basisauthentifizierung entspricht. Das Format lautet Basic <kodierter-Wert>
, wobei <kodierter-Wert>
das Base64-kodierte Ergebnis des durch einen Doppelpunkt getrennten Benutzernamens und Passworts ist. Das Gateway dekodiert diesen Wert und vergleicht den dekodierten Benutzernamen und das Passwort mit den konfigurierten Informationen. Wenn sie übereinstimmen, wird der Anfrage der Zugriff auf den Backend-Dienst gewährt; andernfalls wird die Anfrage abgelehnt.
Beachten Sie, dass die Basisauthentifizierung den Benutzernamen und das Passwort im Klartext überträgt, nur in Base64 kodiert (nicht verschlüsselt), was sie für Hochsicherheitsszenarien ungeeignet macht.
JWT-Authentifizierung
Die JWT-Authentifizierung ist eine Methode, die auf JSON Web Tokens (JWT) basiert. Consumers müssen ein gültiges JWT-Token in ihren Anfragen enthalten, normalerweise im Authorization
-Header im Format Bearer <token>
, kann aber auch nach Bedarf in Abfragezeichenfolgenparametern oder Cookies platziert werden. Consumers müssen bei der Konfiguration von Anfragen die Korrektheit und Gültigkeit des JWT-Tokens sicherstellen.
Beim Hinzufügen von JWT-Anmeldeinformationen können Sie Schlüsselelemente der JWT-Token-Generierung konfigurieren, einschließlich des Schlüssels (öffentlicher oder privater Schlüssel) für die Signierung und Überprüfung, des Geheimnisses (Schlüssel für symmetrische Verschlüsselung), des verwendeten Algorithmus (z. B. HMAC-SHA256 oder RSA-SHA256) und der Ablaufzeit, um die Gültigkeitsdauer des Tokens festzulegen. Nur Consumers, die gültige und nicht abgelaufene Token besitzen, können erfolgreich auf geschützte Backend-Dienste zugreifen.
HMAC-Authentifizierung
Die HMAC-Authentifizierung ist eine Methode, die auf Hash-based Message Authentication Code (HMAC) basiert. Consumers müssen einen HMAC-Wert für die Anfrage generieren, der normalerweise mit einem vorab geteilten Schlüssel und bestimmten Teilen der Anfrage (z. B. Anfragemethode, URI, Anfragekörper) berechnet wird. Dieser HMAC-Wert kann in Abfragezeichenfolgenparametern oder HTTP-Headern enthalten sein.
Bei der Konfiguration von Anfragen müssen Consumers den HMAC-Wert korrekt gemäß dem angegebenen Algorithmus und Format generieren und einbinden. Insbesondere verwenden Consumers einen bekannten Schlüssel und Anfrageinformationen, um den HMAC mit einem Hash-Algorithmus (z. B. SHA-256) zu generieren und ihn der Anfrage hinzuzufügen.
In der Routen- oder Dienstkonfiguration muss das HMAC Auth-Plugin mit den entsprechenden Regeln aktiviert werden, um den HMAC-Wert in der Anfrage zu validieren. Das Gateway überprüft, ob der HMAC-Wert in der Anfrage vorhanden ist, und berechnet den HMAC mit demselben vorab geteilten Schlüssel und Algorithmus neu, um seine Gültigkeit zu überprüfen. Wenn der neu berechnete HMAC mit dem Wert in der Anfrage übereinstimmt, wird der Anfrage der Zugriff auf den Backend-Dienst gewährt.
Granulare Berechtigungsrichtlinien für Consumers
Zusätzlich zur Optimierung der Anmeldeinformationsverwaltung haben wir die Berechtigungsverwaltung für Consumers weiter verfeinert. Sie können nun Berechtigungen bis auf die Ebene einzelner Consumers definieren, was eine feinere Zugriffskontrolle ermöglicht. Lese- und Schreibberechtigungen für Authentifizierungsanmeldeinformationen werden nun unabhängig von den Consumer-Berechtigungen gesteuert, was mehr Flexibilität bietet.
Zusammenfassung
Die neueste Version von API7 Enterprise führt wesentliche Verbesserungen bei der Consumer-Authentifizierung und Berechtigungsverwaltung ein. Es optimiert die Plugin-Interaktionen, ermöglicht eine unabhängige Anmeldeinformationsverwaltung, unterstützt mehrere Authentifizierungsmethoden und verfeinert die Consumer-Berechtigungsstrategien. Diese Verbesserungen erhöhen die Flexibilität der Anmeldeinformationsverwaltung, die Systemsicherheit und das allgemeine Benutzererlebnis.
Zukünftige Updates könnten zusätzliche Authentifizierungsmethoden einführen und die Anmeldeinformationsverwaltung weiter verfeinern, um mehr innovative Funktionen und ein verbessertes Benutzererlebnis zu bieten.