ADC
Danke für das Feedback

Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)

RADIUS-Unterstützung für die Rewrite-Funktion

Die NetScaler-Ausdruckssprache umfasst Ausdrücke, mit denen Informationen aus RADIUS-Nachrichten in Anfragen und Antworten extrahiert und bearbeitet werden können. Mit diesen Ausdrücken können Sie die Rewrite-Funktion verwenden, um Teile einer RADIUS-Nachricht zu ändern, bevor sie an ihr Ziel gesendet wird. Ihre Rewrite-Richtlinien und -Aktionen können jeden Ausdruck verwenden, der für eine RADIUS-Nachricht geeignet oder relevant ist. Mit den verfügbaren Ausdrücken können Sie den RADIUS-Nachrichtentyp identifizieren, ein beliebiges Attributwertpaar (AVP) aus der Verbindung extrahieren und RADIUS-AVPs ändern. Sie können auch Richtlinienlabels für RADIUS-Verbindungen erstellen.

Sie können die neuen RADIUS-Ausdrücke in Rewrite-Regeln für eine Reihe von Zwecken verwenden. Sie könnten zum Beispiel:

  • Entfernen Sie den Abschnitt Domäne\ des RADIUS-Benutzernamens AVP, um Single Sign-On (SSO) zu vereinfachen.
  • Fügen Sie einen anbieterspezifischen AVP ein, z. B. das MSISDN-Feld, das im Betrieb von Telefongesellschaften verwendet wird, um Abonnenteninformationen zu enthalten.

Sie können auch Richtlinienlabels erstellen, um bestimmte Arten von RADIUS-Anfragen anhand einer Reihe von Richtlinien weiterzuleiten, die für diese Anfragen geeignet sind.

Hinweis:

RADIUS for Rewrite weist die folgenden Einschränkungen auf:

  • Der NetScaler signiert keine neu geschriebenen RADIUS-Anfragen oder -Antworten erneut. Wenn der RADIUS-Authentifizierungsserver signierte RADIUS-Nachrichten benötigt, schlägt die Authentifizierung fehl.
  • Die derzeit verfügbaren RADIUS-Ausdrücke funktionieren nicht mit RADIUS-IPv6-Attributen.

In der NetScaler-Dokumentation für Ausdrücke, die RADIUS unterstützen, wird davon ausgegangen, dass Sie mit der grundlegenden Struktur und dem Zweck der RADIUS-Kommunikation vertraut sind. Wenn Sie weitere Informationen zu RADIUS benötigen, lesen Sie in der RADIUS-Serverdokumentation nach oder suchen Sie online nach einer Einführung in das RADIUS-Protokoll.

Konfiguration von Rewrite-Richtlinien für RADIUS

Das folgende Verfahren verwendet die NetScaler-Befehlszeile, um eine Neuschreibaktion und -richtlinie zu konfigurieren und die Richtlinie an einen für das Umschreiben spezifischen globalen Bindungspunkt zu binden.

Gehen Sie wie folgt vor, um eine Rewrite-Aktion und -Richtlinie zu konfigurieren und die Richtlinie zu binden:

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

  • add rewrite action <actName> <actType>
  • add rewrite policy <polName> <rule> <actName>
  • bind rewrite policy <polName> <priority> <nextExpr> -type <bindPoint> wobei <bindPoint> steht für einen der Rewrite-spezifischen globalen Bindungspunkte.

RADIUS-Ausdrücke für Rewrite

In einer Rewrite-Konfiguration können Sie die folgenden NetScaler-Ausdrücke verwenden, um auf verschiedene Teile einer RADIUS-Anfrage oder -Antwort zu verweisen.

Identifizierung des Verbindungstyps:

  • RADIUS.IS_CLIENT

    Gibt TRUE zurück, wenn es sich bei der Verbindung um eine RADIUS-Clientnachricht (Anfrage) handelt.

  • RADIUS.IS_SERVER

    Gibt TRUE zurück, wenn es sich bei der Verbindung um eine RADIUS-Servernachricht (Antwort) handelt.

Ausdrücke anfordern:

  • RADIUS.REQ.CODE

    Gibt die Zahl zurück, die dem RADIUS-Anforderungstyp entspricht. Eine Ableitung der Klasse num_at. Eine RADIUS-Zugriffsanfrage würde beispielsweise 1 (eins) zurückgeben. Eine RADIUS-Buchhaltungsanfrage würde 4 zurückgeben.

  • RADIUS.REQ.LENGTH

    Gibt die Länge der RADIUS-Anfrage einschließlich des Headers zurück. Eine Ableitung der Klasse num_at.

  • RADIUS.REQ.IDENTIFIER

    Gibt den RADIUS-Anforderungsbezeichner zurück, eine Nummer, die jeder Anfrage zugewiesen wird und die es ermöglicht, die Anfrage mit der entsprechenden Antwort abzugleichen. Eine Ableitung der Klasse num_at.

  • RADIUS.REQ.AVP(<AVP Code No>).VALUE

    Gibt den Wert des ersten Auftretens dieses AVP als Zeichenfolge vom Typ text_t zurück.

  • RADIUS.REQ.AVP(<AVP code no>).INSTANCE(instance number)

    Gibt die angegebene Instanz des AVP als Zeichenfolge vom Typ raVP_T zurück. Ein bestimmter RADIUS-AVP kann in einer RADIUS-Nachricht mehrfach vorkommen. INSTANCE (0) gibt die erste Instanz zurück, INSTANCE (1) gibt die zweite Instanz zurück und so weiter, bis zu sechzehn Instanzen.

  • RADIUS.REQ.AVP(<AVP code no>).VALUE(instance number)

    Gibt den Wert der angegebenen Instanz des AVP als Zeichenfolge vom Typ text_t zurück.

  • RADIUS.REQ.AVP(<AVP code no>).COUNT

    Gibt die Anzahl der Instanzen eines bestimmten AVP in einer RADIUS-Verbindung als Ganzzahl zurück.

  • RADIUS.REQ.AVP(<AVP code no>).EXISTS

    Gibt TRUE zurück, wenn der angegebene AVP-Typ in der Nachricht vorhanden ist, oder FALSE, wenn dies nicht der Fall ist.

Antwortausdrücke:

RADIUS-Antwortausdrücke sind identisch mit RADIUS-Anforderungsausdrücken, mit der Ausnahme, dass RES REQ ersetzt.

Typisierungen von AVP-Werten:

Der ADC unterstützt Ausdrücke zur Typisierung von RADIUS-AVP-Werten in die Datentypen Text, Integer, unsigned Integer, Long, unsigned Long, IPv4-Adresse, IPv6-Adresse, IPv6-Adresse, IPv6-Präfix und Zeit. Die Syntax ist dieselbe wie bei anderen NetScaler-Typecast-Ausdrücken.

Beispiel:

Der ADC unterstützt Ausdrücke zur Typisierung von RADIUS-AVP-Werten in die Datentypen Text, Integer, unsigned Integer, Long, unsigned Long, IPv4-Adresse, IPv6-Adresse, IPv6-Adresse, IPv6-Präfix und Zeit. Die Syntax ist dieselbe wie bei anderen NetScaler-Typecast-Ausdrücken.

RADIUS.REQ.AVP(8).VALUE(0).typecast_ip_address_at

Ausdrücke vom Typ AVP:

Der NetScaler unterstützt Ausdrücke zum Extrahieren von RADIUS-AVP-Werten mithilfe der in RFC2865 und RFC2866 beschriebenen zugewiesenen Integer-Codes. Sie können auch Text-Aliase verwenden, um dieselbe Aufgabe zu erledigen. Es folgen einige Beispiele.

  • RADIUS.REQ.AVP (1).VALUE or RADIUS.REQ.USERNAME.value

    Extrahiert den RADIUS-Benutzernamenwert.

  • RADIUS.REQ.AVP (4). VALUE or RADIUS.REQ. ACCT\_SESSION\_ID.value

    Extrahiert die accT-Session-ID AVP (Code 44) aus der Nachricht.

  • RADIUS.REQ.AVP (26). VALUE or RADIUS.REQ.VENDOR\_SPECIFIC.VALUE

    Extrahiert den herstellerspezifischen Wert.

Die Werte der am häufigsten verwendeten RADIUS-AVPs können auf dieselbe Weise extrahiert werden.

RADIUS-Bindepunkte:

Vier globale Bindungspunkte sind für Richtlinien verfügbar, die RADIUS-Ausdrücke enthalten.

  • RADIUS_REQ_OVERRIDE

    Warteschlange für Richtlinien zur Priorität/Außerkraftsetzung von Anfragen.

  • RADIUS_REQ_DEFAULT

    Standardwarteschlange für Anforderungsrichtlinien.

  • RADIUS_RES_OVERRIDE

    Warteschlange für Antwortrichtlinien zur Priorität/Außerkraftsetzung.

  • RADIUS_RES_DEFAULT

    Standardwarteschlange für Antwortrichtlinien.

Spezifische RADIUS-Rewrite-Ausdrücke:

  • RADIUS.NEW_AVP

    Gibt den angegebenen RADIUS-AVP als Zeichenfolge zurück.

  • RADIUS.NEW_AVP_INTEGER32

    Gibt den angegebenen RADIUS-AVP als Ganzzahl zurück.

  • RADIUS.NEW_AVP_UNSIGNED32

    Gibt den angegebenen RADIUS-AVP als Ganzzahl ohne Vorzeichen zurück.

  • RADIUS.NEW_VENDOR_SPEC_AVP(<ID>, <definition>)

    Fügt der Verbindung die angegebenen erweiterten herstellerspezifischen AVPs hinzu. Ersetzen Sie durch eine lange Zahl. <ID> <definition>Ersetzen Sie den AVP durch eine Zeichenfolge, die die Daten enthält.

  • RADIUS.REQ.AVP_START

    Gibt die Position zwischen dem Ende des RADIUS-Headers und dem Anfang der AVPs zurück. Wird in Rewrite-Aktionen verwendet.

    Beispiel:

add rewrite action insert1 insert_after radius.req.avp_start radius.new_avp(33, "NEW AVP")
  • RADIUS.REQ.AVP_END

    Gibt die Position am Ende der Radius-Nachricht (oder mit anderen Worten am Ende aller AVPs) in der Radius-Nachricht zurück. Wird verwendet, wenn Rewrite-Aktionen ausgeführt werden.

    Beispiel:

add rewrite action insert2 insert_before radius.req.avp_end "radius.new_avp(33, "NEW AVP")"
  • RADIUS.REQ.AVP_LIST

    Gibt die Position am Anfang der AVPs in einer RADIUS-Nachricht und die Länge der RADIUS-Nachricht ohne den Header zurück. Mit anderen Worten, gibt alle AVPs in einer RADIUS-Nachricht zurück. Wird verwendet, um Rewrite-Aktionen auszuführen.

    Beispiel:

add rewrite action insert3 insert_before_all radius.req.avp_list "radius.new_avp(33, "NEW AVP")" -search "avp(33)"

Gültige Rewrite-Action-Typenfür RADIUS:

Die Rewrite-Aktionstypen, die mit RADIUS-Ausdrücken verwendet werden können, sind:

  • INSERT_AFTER
  • INSERT_BEFORE
  • INSERT_AFTER_ALL
  • INSERT_BEFORE_ALL
  • LÖSCHEN
  • DELETE_ALL
  • REPLACE
  • REPLACE_ALL

Alle INSERT_ actions können verwendet werden, um einen RADIUS-AVP in eine RADIUS-Verbindung einzufügen.

Anwendungsfälle

Im Folgenden finden Sie Anwendungsfälle für RADIUS mit Rewrite.

Den Benutzernamen AVP umschreiben

Um die Rewrite-Funktion so zu konfigurieren, dass die Zeichenfolge Domain\ string aus dem RADIUS-Benutzernamen AVP entfernt wird, erstellen Sie zunächst eine REWRITE-REPLACE-Aktion, wie im Beispiel unten gezeigt. Verwenden Sie die Aktion in einer Rewrite-Richtlinie, die alle RADIUS-Anforderungen auswählt. Binden Sie die Richtlinie an einen globalen Bindungspunkt. Wenn Sie dies tun, legen Sie die Priorität auf die entsprechende Stufe fest, damit alle Blockier- oder Ablehnungsrichtlinien zuerst wirksam werden. Stellen Sie jedoch sicher, dass alle Anfragen, die nicht blockiert oder abgelehnt wurden, neu geschrieben werden. Setzen Sie den Goto-Ausdruck (GoToPriorityExpr) auf NEXT, um die Richtlinienauswertung fortzusetzen, und hängen Sie die Richtlinie an die RADIUS_REQ_DEFAULT-Warteschlange an.

Beispiel:

add rewrite action rwActRadiusDomainDel replace radius.req.user_name q/RADIUS.NEW_AVP(1,RADIUS.REQ.USER_NAME.VALUE.AFTER_STR(" "))/ add rewrite policy RadiusRemoveDomainPol true rwActRadiusDomainDel

Hinweis:

Die Rewrite-Richtlinie für RADIUS gilt nicht für einen virtuellen Gateway-Server. Wenn ein virtueller Gateway-Server für den Lastenausgleich verwendet wird, muss RADIUS konfiguriert und die Rewrite-Richtlinie muss an einen virtuellen RADIUS-Lastenausgleichsserver gebunden werden.

Einen herstellerspezifischen AVP einfügen

Um die Rewrite-Aktion so zu konfigurieren, dass ein herstellerspezifisches AVP eingefügt wird, das den Inhalt des MSISDN-Feldes enthält, erstellen Sie zunächst eine INSERT-Aktion zum Umschreiben, die das MSISDN-Feld in die Anfrage einfügt. Verwenden Sie die Aktion in einer Rewrite-Richtlinie, die alle RADIUS-Anforderungen auswählt. Binden Sie die Richtlinie an eine globale Richtlinie, indem Sie die Priorität auf eine entsprechende Ebene und die anderen Parameter festlegen, wie im folgenden Beispiel gezeigt.

Beispiel:

add rewrite action rwActRadiusInsMSISDN insert_after radius.req.avp_start RADIUS.NEW_VENDOR_SPEC_AVP(<VENDOR ID>, "RADIUS.NEW_AVP(<Attribute Code>, <MSISDN>)") add rewrite policy rwPolRadiusInsMSISDN true rwActRadiusInsMSISDN bind rewrite global rwPolRadiusInsMSISDN 100 NEXT -type RADIUS_REQ_DEFAULT
Die offizielle Version dieses Inhalts ist auf Englisch. Für den einfachen Einstieg wird Teil des Inhalts der Cloud Software Group Dokumentation maschinell übersetzt. Cloud Software Group hat keine Kontrolle über maschinell übersetzte Inhalte, die Fehler, Ungenauigkeiten oder eine ungeeignete Sprache enthalten können. Es wird keine Garantie, weder ausdrücklich noch stillschweigend, für die Genauigkeit, Zuverlässigkeit, Eignung oder Richtigkeit von Übersetzungen aus dem englischen Original in eine andere Sprache oder für die Konformität Ihres Cloud Software Group Produkts oder Ihres Diensts mit maschinell übersetzten Inhalten gegeben, und jegliche Garantie, die im Rahmen der anwendbaren Endbenutzer-Lizenzvereinbarung oder der Vertragsbedingungen oder einer anderen Vereinbarung mit Cloud Software Group gegeben wird, dass das Produkt oder den Dienst mit der Dokumentation übereinstimmt, gilt nicht in dem Umfang, in dem diese Dokumentation maschinell übersetzt wurde. Cloud Software Group kann nicht für Schäden oder Probleme verantwortlich gemacht werden, die durch die Verwendung maschinell übersetzter Inhalte entstehen können.
RADIUS-Unterstützung für die Rewrite-Funktion