Konfigurieren Sie nFactor für NetScaler Gateway mit WebAuth im ersten Faktor und LDAP mit Kennwortänderung im zweiten Faktor
Die folgenden allgemeinen Schritte umfassen die Konfiguration von nFactor für NetScaler Gateway mit WebAuth im ersten Faktor und LDAP mit Kennwortänderung im zweiten Faktor.
-
Konfigurieren Sie einen virtuellen Authentifizierungsserver ohne IP. Es ist nicht zwingend erforderlich, ein Zertifikat an den virtuellen Authentifizierungsserver zu binden.
-
Konfigurieren Sie ein Authentifizierungsprofil mit dem Namen des virtuellen Authentifizierungsservers.
-
Konfigurieren Sie einen virtuellen VPN-Server.
-
Stellen Sie das Authentifizierungsprofil auf diesem virtuellen VPN-Server ein.
-
Konfigurieren Sie eine WebAuth-Aktion und -Richtlinie.
-
Konfigurieren Sie die LDAP-Aktion und -Richtlinie.
-
Konfigurieren Sie eine Anmeldeschema-Aktion für den LDAP-Faktor.
-
Konfigurieren Sie ein Richtlinienlabel für den LDAP-Faktor mithilfe der Anmeldeschema-Aktion für den LDAP-Faktor.
-
Binden Sie die LDAP-Richtlinie an das LDAP-Richtlinienlabel.
-
Binden Sie die WebAuth-Richtlinie mit einem LDAP-Richtlinienlabel als nächsten Faktor an den virtuellen Authentifizierungsserver.
Funktionsweise
-
Der Benutzer gibt den NetScaler Gateway-FQDN im Browser ein und wird zur Seite /logon/logonpoint/tmindex.html umgeleitet.
-
Auf dieser Seite wird das Anmeldeschema angezeigt, das an einen virtuellen Authentifizierungsserver gebunden ist. Wenn kein Anmeldeschema an einen virtuellen Authentifizierungsserver gebunden ist (wie in unserer Konfiguration), wird ein Standardschema angezeigt.
-
Der Benutzer gibt die Anmeldeinformationen für den ersten Faktor ein, in diesem Fall WebAuth.
-
NetScaler Gateway überprüft die WebAuth-Aktion und kontaktiert den WebAuth-Server. Es sendet die im Parameter fullReqExpr erwähnte HTTP-Anfrage an den WebAuth-Server. Wenn die Antwort des WebAuth-Servers dem im Parameter SuccessRule der WebAuth-Aktion genannten Ausdruck entspricht, wird diese Richtlinie übernommen.
-
Jetzt geht NetScaler Gateway zum zweiten Faktor über. Es überprüft die Konfiguration des Policy-Labels LDAP_Factor, das als nächster Faktor festgelegt ist. Da in dieser Richtlinienbezeichnung ein LoginSchema erwähnt wird, sendet NetScaler Gateway dieses XML-Schema an den Client.
-
Der Client empfängt das Schema und gibt die LDAP-Anmeldeinformationen für die zweite Faktorauthentifizierung ein.
-
NetScaler Gateway versucht, den LDAP-Server zu erreichen und überprüft, ob die Client-Anmeldeinformationen korrekt sind. Wenn sie korrekt sind, wird die Authentifizierungsphase abgeschlossen und der Benutzer meldet sich im konfigurierten VPN-Modus an.
Die folgende Abbildung zeigt eine nFactor-Authentifizierungssequenz, bei der der erste Faktor WebAuth und der zweite Faktor LDAP ist.
Konfiguration über die CLI
-
Konfigurieren Sie einen virtuellen Authentifizierungsserver.
add authentication vserver auth1 ssl <!--NeedCopy-->
Navigieren Sie in der GUI zu Sicherheit > AAA — Anwendungsverkehr > Virtueller Server und klicken Sie auf Hinzufügen.
-
Konfigurieren Sie ein Authentifizierungsprofil.
add authnProfile auth_profile –authnVsname auth1 <!--NeedCopy-->
Navigieren Sie in der GUI zu Sicherheit > AAA — Anwendungsverkehr > Authentifizierungsprofil und klicken Sie auf Hinzufügen.
-
Konfigurieren Sie einen virtuellen VPN-Server.
add vpn vserver vpn1 ssl 10.1.1.1 443 add ssl certkey ckp –cert test.cer –key test.key bind ssl vserver vpn1 –certKey ckp <!--NeedCopy-->
Navigieren Sie zu NetScaler Gateway > Virtual Server und klicken Sie auf Hinzufügen.
Sobald der virtuelle VPN-Server erstellt wurde, binden Sie das Zertifikat an ihn.
Stellen Sie das Authentifizierungsprofil auf dem virtuellen VPN-Server ein
set vpn vserver vpn1 –authnProfile auth_profile <!--NeedCopy-->
-
Konfigurieren Sie eine WebAuth-Aktion und -Richtlinie.
Navigieren Sie zu Appexpert > Expression > Advanced Expression.
add policy expression post_data ""myusername=" + http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" + http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")" <!--NeedCopy-->
add policy expression length_post_data "("myusername=" + http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" + \http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")).length" <!--NeedCopy-->
Nfactor-Konfiguration mit der CLI:
add authentication webAuthAction webAuth_action -serverIP 10.102.39.132 -serverPort 443 -fullReqExpr q{"POST /customAuth.aspx HTTP/" + http.req.version.major + "." + http.req.version.minor + "\r\nAccept: \*/\*\r\nHost: 10.102.39.132\r\nUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)\r\nContent-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: " + length_post_data + "\r\nConnection: Keep-Alive\r\n\r\n" + post_data} -scheme https -successRule "http.RES.STATUS.EQ(200)" add authentication policy webAuth_policy –rule TRUE –action webAuth_action <!--NeedCopy-->
Die zuvor konfigurierte WebAuth-Aktion verwendet zwei Richtlinienausdrücke. Ein Richtlinienausdruck (post_data) erstellt den POST-Text. Der andere (length_post_data) berechnet die Länge des POST-Hauptteils, der verwendet wird, um den Content-Length-Header in der POST-Anforderung zu füllen.
Der Richtlinienausdruck, der den POST-Text erstellt, analysiert die Anmeldeanfrage und extrahiert den vom Benutzer eingegebenen Benutzernamen und das Passwort. Anschließend erstellt es den POST-Text in dem Format, das der WebAuth-Server erwartet, und verwendet dabei das aus der Anmeldeanfrage extrahierte Benutzernamen-Passwort.
Schließlich erstellt die WebAuth-Aktion die folgende Anfrage, die an den WebAuth-Server gesendet wird.
POST /customAuth.aspx HTTP/1.1 Accept: \*/\* Host: 10.102.39.132 Accept-Language: en-US User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) Content-Type: application/x-www-form-urlencoded Content-Length:43 Connection: Keep-Alive myusername=test_user&mypassword=test_passwd <!--NeedCopy-->
-
Konfigurieren Sie die LDAP-Aktion und -Richtlinie für die Kennwortänderung.
add authentication ldapAction ldap_action -serverIP 10.102.39.133 -serverPort 636 -secType SSL -ldapBase "dc=domain,dc=com" -ldapBindDn administrator -ldapBindDnPassword password -ldapLoginName samAccountName -passwdChange ENABLED add authentication policy ldap_policy –rule TRUE –action ldap_action <!--NeedCopy-->
Die LDAP-Aktion ist mit —passwdChange ENABLED konfiguriert, wodurch der Benutzer das Passwort nach der VPN-Anmeldung ändern kann.
-
Konfigurieren Sie eine LoginSchema-Aktion für den LDAP-Faktor.
add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml <!--NeedCopy-->
Der LDAP-Faktor erfordert einen Benutzernamen und ein Passwort vom Endbenutzer. Das Anmeldeformular, das dem Endbenutzer angezeigt wird, muss ein Feld mit Benutzername und Passwort enthalten.
NetScaler hat einige Standard-LoginSchema-XMLs, die in der NetScaler-Shell am Speicherort /nsconfig/ loginSchema/loginSchema vorhanden sind. Sie können eines der standardmäßigen LoginSchema-XMLs verwenden, die am vorherigen Speicherort vorhanden sind.
-
Konfigurieren Sie ein Richtlinienlabel für den LDAP-Faktor mithilfe der LoginSchema-Aktion für den LDAP-Faktor:
add authentication policylabel LDAP_factor -loginSchema LDAP_schema <!--NeedCopy-->
-
Binden Sie die LDAP-Richtlinie an das LDAP-Richtlinienlabel.
bind authentication policylabel LDAP_factor –policyName ldap_policy –priority 10 <!--NeedCopy-->
-
Binden Sie die WebAuth-Richtlinie an den virtuellen Authentifizierungsserver mit einem LDAP-Richtlinienlabel als nächsten Faktor.
bind authentication vserver auth1 –policy webAuth_policy –nextFactor LDAP_factor –priority 10 <!--NeedCopy-->
Die vorherige nFactor-Konfiguration kann auch mit dem nFactor-Visualizer in NetScaler durchgeführt werden, der ab der Firmware-Version 13.0 verfügbar ist.
Konfiguration mit dem nFactor Visualizer
Der erste Faktor hier ist Webauth, gefolgt von LDAP, wobei die Option zur Passwortänderung aktiviert ist.
-
Navigieren Sie zu Sicherheit > AAA-Anwendungsdatenverkehr > nFactor Visualizer > nFactor Flow und klicken Sie auf Hinzufügen.
-
Klicken Sie auf das Pluszeichen, um den nFactor-Flow hinzuzufügen.
-
Fügen Sie einen Faktor hinzu. Dieser Name, den Sie für diesen Faktor eingeben, ist der Name des nFactor-Flows.
-
Klicken Sie auf Richtlinie hinzufügen, um die Webauth-Richtlinie und die Webauth-Aktion/den Webauth-Server hinzuzufügen.
-
Klicken Sie auf das grüne +-Zeichen, um den nächsten Faktor hinzuzufügen, nämlich die LDAP-Authentifizierung mit aktivierter Passwortänderungsoption.
-
Klicken Sie auf Schema hinzufügen, um das Anmeldeschema für die LDAP-Authentifizierung hinzuzufügen.
-
Klicken Sie auf Richtlinie hinzufügen, um die LDAP-Authentifizierungsrichtlinie und die LDAP-Aktion/den LDAP-Server hinzuzufügen.
Informationen zum Erstellen einer LDAP-Aktion/eines LDAP-Servers finden Sie im Artikel. https://support.citrix.com/article/CTX219939
-
Sobald beide Faktoren konfiguriert sind, müssen Sie den Flow an den virtuellen Authentifizierungs-, Autorisierungs- und Überwachungsserver binden.
Debugging — Protokolle und Zähler
Die Logs werden nach einer erfolgreichen Anmeldung mit WebAuth und LDAP eingesehen. Um die meisten der folgenden Protokolle zu sehen, setzen Sie die Audit-Log-Ebene auf ALLE, sodass auch die Debug-Logs angezeigt werden.
set audit syslogparams –loglevel ALL
<!--NeedCopy-->
Hinweis: Die Zeitstempel wurden der Kürze halber aus den Protokollen entfernt.
Die folgenden Zähler werden nach einer erfolgreichen Anmeldung mit WebAuth und LDAP erhöht.
- pcp_hits authn (WebAuth_Policy)
- aaa_tot_webauth_primary_auth
- aaa_tot_webauth_prim_auth_success
- aaa_tot_webauth_prim_succ_check_thru
- pcp_hits authn (WebAuth_Policy)
- pcp_hits authn (ldap_policy)
- aaa_auth_succ