Citrix ADC

Cookie mit nFactor setzen

Sie können die benutzerdefinierten nFactor Labels anwenden und ein Cookie als Faktor des Authentifizierungsflusses festlegen. Über benutzerdefinierte Labels können Sie JavaScript verwenden, um das Anmeldeschema zu manipulieren.

Um ein Cookie als Faktor zu setzen, müssen Sie dem Benutzer keine Informationen anzeigen, die ohne Schema-Login ausgeführt werden. Stattdessen müssen Sie mit dem Browser des Benutzers interagieren, um das Anmeldeschema anzuweisen, die gewünschten Daten zu speichern. Ein Anmeldeschema ist erforderlich, um das Cookie zu setzen, wenn die Seite geladen wird. Das Cookie wird mit einem benutzerdefinierten Label und JavaScript-Code gesetzt.

Um einen Faktor zu implementieren, der ein Cookie setzt, erstellen Sie eine XML-Datei namens cookie.xml, um das Schema im Verzeichnis /nsconfig/loginschema/ mit folgendem Inhalt zu speichern:

<?xml version="1.0" encoding="UTF-8"?>
<AuthenticateResponse xmlns="http://citrix.com/authentication/response/1">
<Status>success</Status>
<Result>more-info</Result>
<StateContext></StateContext>
<AuthenticationRequirements>
<PostBack>/nf/auth/doAuthentication.do</PostBack>
<CancelPostBack>/nf/auth/doLogoff.do</CancelPostBack>
<CancelButtonText>Cancel</CancelButtonText>
<Requirements>

<Requirement>
<Credential><ID>nsg_cookie</ID><Type>nsg_cookie</Type></Credential>
<Label><Text>Logon Type:</Text><Type>Plain</Type></Label>
</Requirement>

<Requirement>
<Credential><ID>loginBtn</ID><Type>none</Type></Credential>
<Label><Type>none</Type></Label><Input><Button>Log On</Button></Input>
</Requirement>

</Requirements>
</AuthenticationRequirements>
</AuthenticateResponse>

In diesem XML;

  • Das benutzerdefinierte Label nsg_cookie wird verwendet, um das Cookie zu erstellen und das Formular und die Formularschaltfläche zu senden.
  • Das RFWebUI_Custom ist das neue Portal-Design, das auf dem RFWebUI-Design basiert.

Schritte zum Setzen eines Cookies mit nFactor

  1. Erstellen Sie ein Portal-Design basierend auf dem RFWebUI-Design.

    add vpn portaltheme RfWebUI_custom -basetheme RfWebUI
    

    Dieser Befehl erstellt einen Ordner für dieses Design unter /var/netscaler/logon/themes/rfWebUI_custom

  2. Bearbeiten Sie die Datei /var/netscaler/logon/themes/rfWebUI_custom/script.js und fügen Sie das folgende Skript hinzu:

    CTXS.ExtensionAPI.addCustomCredentialHandler({
        // The name of the credential, must match the type returned by the server
        getCredentialTypeName: function () { return "nsg_cookie"; },
        // Generate HTML for the custom credential
        getCredentialTypeMarkup: function (requirements) {
            var div = $("<div></div>");
            $(document).ready(function() {
            //Set cookie valid for 1000 days
            var exdays = 1000;
            var d = new Date();
            d.setTime(d.getTime() + (exdays\*24\*60\*60\*1000));
            var expires = "expires="+ d.toUTCString();
            document.cookie = "NSC_COOKIE_NAME=CookieValeu;" + expires + ";path=/";
    
            //Submit form
            document.getElementById('loginBtn').click();
            });
            return div;
        }
    });
    

    Dieser Code führt Folgendes aus:

    • Wartet, bis der Browser das Laden der Seite beendet hat
    • Setzt ein Cookie namens NSC_COOKIE_NAME mit dem Wert CookieValue, gültig für 1000 Tage
    • Überträgt das Formular automatisch.

    Das Cookie wird erstellt und der Benutzer muss nicht mit der Seite interagieren.

  3. Erstellen Sie ein Anmeldeschema, um an die Richtlinienbezeichnung zu binden, die den festgelegten Cookie-Faktor darstellt.

    add authentication loginSchema Cookie_LS -authenticationSchema "/nsconfig/loginschema/cookie.xml"
    
  4. Erstellen Sie eine NO_AUTHN-Authentifizierungsrichtlinie, die an die Richtlinienbezeichnung gebunden wird, die den festgelegten Cookie-Faktor darstellt.

    add authentication Policy NO_AUTHN_POL -rule TRUE -action NO_AUTHN
    

    Diese Richtlinie wird immer als wahr ausgewertet, indem der Benutzer auf den nächsten Faktor verschoben oder der Authentifizierungsfluss abgeschlossen wird.

  5. Binden Sie das Portaldesign RFWebUI_Custom an den virtuellen Citrix Gateway -Server oder den virtuellen Citrix ADC AAA-Server.

Cookie mit nFactor setzen