Citrix ADC

Anwendungsfall: Zugriffskontrolle und Authentifizierung

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

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

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

Responder aktivieren

Die Responder-Funktion muss aktiviert sein, bevor sie auf der Citrix ADC Appliance verwendet wird.

So aktivieren Sie den Responder mit dem Konfigurationsdienstprogramm

  1. Stellen Sie sicher, dass die Responderlizenz installiert ist.
  2. Erweitern Sie im Konfigurationsdienstprogramm AppExpert, klicken Sie mit der rechten Maustaste auf Responder, und klicken Sie dann auf Responderfunktion aktivieren.

Erstellen einer HTTP-Legende auf der Citrix ADC Appliance

Erstellen Sie eine HTTP-Legende, HTTP-Callout-3, mit den Parametereinstellungen in der folgenden Tabelle. Weitere Hinweise zum Erstellen einer HTTP-Legende finden Sie unterKonfigurieren einer HTTP-Legende.

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-Anfrage:

IP-Adresse

10.103.9.95

Port

80

Anfrage zum Senden an den Server:

Methode

GET

Hostausdruck

10.102.3.95

URL-Stammausdruck

/cgi-bin/authenticate.pl

Kopfzeilen:

Name

Anforderung

Wertausdruck

Callout-Anfrage

Parameter:

Name

Benutzername

Wertausdruck

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

Name

Kennwort

Wertausdruck

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

Serverantwort:

Rückgabetyp

Text

Ausdruck zum Extrahieren von Daten aus der Antwort

HTTP.RES.BODY (100)

Erstellen einer Responder-Richtlinie zum Analysieren der Antwort

Erstellen Sie eine Responder-Richtlinie, Policy-Responder-3, die die Antwort vom Callout-Server überprüft und die Verbindung zurückgesetzt, wenn die Quell-IP-Adresse auf die schwarze Liste gesetzt wurde. Erstellen Sie die Richtlinie mit den in der folgenden Tabelle angezeigten Parametereinstellungen. Sie können zwar eine Responder-Richtlinie im Unterknoten Richtlinien erstellen und sie dann global mithilfe des Responder-Richtlinien-Managers binden, diese Demonstration verwendet den Responder-Richtlinien-Manager, 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
Undefined-Result-Action -Global undefined-result action-
Ausdruck “HTTP.REQ.HEADER(\“Request\”).EQ(\“Callout Request\”).NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS(\“Authentication Failed\”)”

So erstellen Sie eine Responder-Richtlinie und binden sie global mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu AppExpert > Responder.
  2. Klicken Sie im Detailbereich unter Richtlinien-Managerauf Responder Policy Manager.
  3. Klicken Sie im Dialogfeld Responder Policy Manager auf Global überschreiben.
  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 folgendermaßen vor:

    1. Geben Sie unter Name den Wert Policy-Responder-3 ein.
    2. Wählen Sie unter Aktion die Option RESET.
    3. Wählen Sie unter Aktion Nicht definiertes Ergebnis die Option Globale Aktion mit nicht definiertem Ergebnis aus.
    4. Geben Sie im Textfeld Ausdruck Folgendes ein:
    "HTTP.REQ.HEADER("Request").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(HTTP-Callout-3).CONTAINS("Authentication Failed")"
    
    1. Klicken Sie auf Erstellen, und klicken Sie dann auf Schließen.
  6. Klicken Sie auf Änderungen übernehmen, und klicken Sie dann auf Schließen.

Erstellen eines HTTP-Callout-Agents auf dem Remoteserver

Sie müssen nun einen HTTP-Callout-Agent auf dem Remote-Callout-Server erstellen. Der HTTP-Callout-Agent empfängt Callout-Anforderungen von der Citrix ADC Appliance und reagiert entsprechend. Der Callout-Agent ist ein Skript, das für jede Bereitstellung unterschiedlich ist und unter Berücksichtigung der Serverspezifikationen geschrieben werden muss, z. B. der Datenbanktyp und die unterstützte Skriptsprache.

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

So überprüfen Sie den angegebenen Benutzernamen und das angegebene Kennwort mithilfe von Pseudo-Code

  1. Akzeptieren Sie den in der Anfrage angegebenen Benutzernamen und das Kennwort und formatieren Sie diese entsprechend.
  2. Stellen Sie eine Verbindung mit der Datenbank her, die alle gültigen Benutzernamen und Kennwörter enthält.
  3. Überprüfen Sie die angegebenen Anmeldeinformationen für Ihre Datenbank.
  4. Formatieren Sie die Antwort wie von der HTTP-Legende erforderlich.
  5. Senden Sie die Antwort an die Citrix ADC Appliance.

Anwendungsfall: Zugriffskontrolle und Authentifizierung