ADC

Anwendungsfall: Zugriffskontrolle und Authentifizierung

In Hochsicherheitszonen ist es zwingend erforderlich, den Benutzer extern zu authentifizieren, bevor Clients auf eine Ressource zugreifen. Auf der NetScaler-Appliance können Sie HTTP-Callouts verwenden, um den Benutzer extern zu authentifizieren, indem Sie die bereitgestellten Anmeldeinformationen auswerten. In diesem Beispiel wird davon ausgegangen, dass der Client den Benutzernamen und das Kennwort in der Anfrage über HTTP-Header sendet. Dieselben Informationen könnten jedoch von der URL oder dem HTTP-Body abgerufen werden.

Um diese Konfiguration zu implementieren, müssen Sie die folgenden Aufgaben ausführen:

  1. Aktivieren Sie die Responder-Funktion auf der NetScaler-Appliance.
  2. Erstellen Sie ein HTTP-Callout auf der Appliance und konfigurieren Sie es mit Details zum externen Server und anderen erforderlichen Parametern.
  3. Konfigurieren Sie eine Responder-Richtlinie, um die Antwort zu analysieren, und binden Sie die Richtlinie dann global.
  4. Erstellen Sie einen Callout-Agenten auf dem Remoteserver.

Responder aktivieren

Die Responder-Funktion muss aktiviert sein, bevor sie auf der NetScaler-Appliance verwendet werden kann.

So aktivieren Sie den Responder mithilfe des Konfigurationsprogramms

  1. Stellen Sie sicher, dass die Responder-Lizenz installiert ist.
  2. Erweitern Sie im Konfigurationsprogramm AppExpert, klicken Sie mit der rechten Maustaste auf Responder, und klicken Sie dann auf Responder-Funktion aktivieren.

Erstellen eines HTTP-Callouts auf der NetScaler-Appliance

Erstellen Sie ein HTTP-Callout, HTTP-Callout-3, mit den Parametereinstellungen in der folgenden Tabelle. Weitere Informationen zum Erstellen einer HTTP-Callout finden Sie unter Konfigurieren einer HTTP-Callout.

Tabelle 1. Parameter und Werte für HTTP-Callout-3

Parameter Wert Name
Name Policy-Responder-3  

Parameter

Wert

Name

HTTP-Callout-3

Server für den Empfang einer Callout-Anforderung:

IP-Adresse

10.103.9.95

Port

80

Anfrage zum Senden an den Server:

Methode

GET

Ausdruck des Hosts

10.102.3.95

URL-Stammausdruck

„/cgi-bin/authenticate.pl“

Kopfzeilen:

Name

Anfrage

Werteausdruck

Callout-Anfrage

Parameter:

Name

Benutzername

Werteausdruck

HTTP.REQ.HEADER („Benutzername“) .VALUE (0)

Name

Kennwort

Werteausdruck

HTTP.REQ.HEADER („Kennwort“) .VALUE (0)

Serverantwort:

Art der Rückgabe

TEXT

Ausdruck zum Extrahieren von Daten aus der Antwort

HTTP.RES.BODY(100)

Erstellen einer Responder-Richtlinie zur Analyse der Antwort

Erstellen Sie eine Responder-Richtlinie, Policy-Responder-3, die die Antwort vom Callout-Server überprüft und die Verbindung ZURÜCKSETZT, wenn die Quell-IP-Adresse auf die schwarze Liste gesetzt wurde. Erstellen Sie die Richtlinie mit den in der folgenden Tabelle aufgeführten Parametereinstellungen. Sie können zwar im Unterknoten Richtlinien eine Responder-Richtlinie erstellen und sie dann mithilfe des Responder-Policy-Managers global binden. In dieser Demonstration wird jedoch der Responder-Policy-Manager verwendet, um die Responder-Richtlinie zu erstellen und die Richtlinie global zu binden.

Tabelle 2. Parameter und Werte für Policy-Responder-3

Parameter Wert
Name Policy-Responder-3
Aktion RESET
Aktion mit undefiniertem Ergebnis -Global undefined-result action-
Ausdruck „HTTP.REQ.HEADER (\” Anfrage\“) .EQ (\ “Callout-Anforderung\“) .NOT && SYS.HTTP_CALLOUT (HTTP-Callout-3) .CONTAINS (\ “Authentifizierung fehlgeschlagen\“)“

Um eine Responder-Richtlinie zu erstellen und sie global zu binden, verwenden Sie das Konfigurationsdienstprogramm

  1. Navigieren Sie zu AppExpert > Responder.
  2. Klicken Sie im Detailbereich unter Policy Managerauf Responder Policy Manager.
  3. Klicken Sie im Dialogfeld Responder Policy Manager auf OverrideGlobal.
  4. Klicken Sie auf Richtlinie einfügen, und klicken Sie dann in der Spalte Richtlinienname auf Neue Richtlinie.
  5. Gehen Sie im Dialogfeld Responder-Richtlinie erstellen wie folgt vor:

    1. Geben Sie im Feld Name den Wert Policy-Responder-3 ein.
    2. Wählen Sie unter Aktion die Option ZURÜCKSETZENaus.
    3. Wählen Sie unter Aktion mit undefiniertem Ergebnis die Option Globale Aktion mit undefiniertem Ergebnis aus.
    4. Geben Sie in das Textfeld Ausdruck Folgendes ein:
    "HTTP.REQ.HEADER("Request").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS("Authentication Failed")"
    <!--NeedCopy-->
    
    1. Klicken Sie auf Erstellenund dann auf Schließen.
  6. Klicken Sie auf Änderungen übernehmenund dann auf Schließen.

Einen HTTP Callout-Agenten auf dem Remoteserver erstellen

Sie müssen jetzt einen HTTP-Callout-Agenten auf dem Remote-Callout-Server erstellen. Der HTTP-Callout-Agent empfängt Callout-Anfragen von der NetScaler-Appliance und reagiert entsprechend. Der Callout-Agent ist ein Skript, das für jede Bereitstellung unterschiedlich ist und unter Berücksichtigung der Serverspezifikationen, wie z. B. des Datenbanktyps und der unterstützten Skriptsprache, geschrieben werden muss.

Im Folgenden finden Sie ein Beispiel für einen Callout-Agent-Pseudocode, der überprüft, ob der angegebene Benutzername und das angegebene Kennwort gültig sind. Der Agent kann in jeder Programmiersprache Ihrer Wahl implementiert werden. Der Pseudocode darf nur als Richtlinie für die Entwicklung des Callout-Agenten verwendet werden. Sie können zusätzliche Funktionen in das Programm integrieren.

Um den angegebenen Benutzernamen und das Kennwort mithilfe von Pseudocode zu überprüfen

  1. Akzeptieren Sie den in der Anfrage angegebenen Benutzernamen und das Kennwort und formatieren Sie sie entsprechend.
  2. Stellen Sie eine Verbindung zu der Datenbank her, die alle gültigen Benutzernamen und Kennwörter enthält.
  3. Überprüfen Sie die angegebenen Anmeldeinformationen anhand Ihrer Datenbank.
  4. Formatieren Sie die Antwort so, wie es der HTTP-Callout erfordert.
  5. Senden Sie die Antwort an die NetScaler Appliance.
Anwendungsfall: Zugriffskontrolle und Authentifizierung