-
Bereitstellen einer Citrix ADC VPX-Instanz
-
Installieren einer Citrix ADC VPX Instanz auf einem Bare-Metal-Server
-
Installieren einer Citrix ADC VPX-Instanz auf Citrix Hypervisor
-
Installieren einer Citrix ADC VPX Instanz in VMware Cloud auf AWS
-
Installieren einer Citrix ADC VPX Instanz auf Microsoft Hyper-V-Servern
-
Installieren einer Citrix ADC VPX-Instanz auf der Linux-KVM-Plattform
-
Bereitstellen der virtuellen Citrix ADC Appliance mit OpenStack
-
Bereitstellen der Citrix ADC Virtual Appliance mit Virtual Machine Manager
-
Konfigurieren virtueller Citrix ADC Appliances für die Verwendung der SR-IOV-Netzwerkschnittstelle
-
Bereitstellen der virtuellen Citrix ADC Appliance mit dem Virsh-Programm
-
Bereitstellen der virtuellen Citrix ADC Appliance mit SR-IOV auf OpenStack
-
Bereitstellen einer Citrix ADC VPX-Instanz auf AWS
-
Bereitstellen einer eigenständigen Citrix ADC VPX-Instanz in AWS
-
Bereitstellen eines hochverfügbaren VPX-Paars mit elastischen IP-Adressen in verschiedenen AWS-Zonen
-
Bereitstellen eines hochverfügbaren VPX-Paars mit privaten IP-Adressen in verschiedenen AWS-Zonen
-
Konfigurieren einer Citrix ADC VPX-Instanz für die Verwendung der SR-IOV-Netzwerkschnittstelle
-
Konfigurieren einer Citrix ADC VPX-Instanz für die Verwendung von Enhanced Networking mit AWS ENA
-
Bereitstellen einer Citrix ADC VPX Instanz in Microsoft Azure
-
Netzwerkarchitektur für Citrix ADC VPX-Instanzen in Microsoft Azure
-
Konfigurieren mehrerer IP-Adressen für eine eigenständige Citrix ADC VPX-Instanz
-
Konfigurieren eines Hochverfügbarkeitssetups mit mehreren IP-Adressen und Netzwerkkarten
-
Konfigurieren einer Citrix ADC VPX-Instanz für beschleunigte Azure-Netzwerke
-
Konfigurieren von HA-INC-Knoten mit der Citrix Hochverfügbarkeitsvorlage mit Azure ILB
-
Konfigurieren von GSLB auf einem Hochverfügbarkeits-Setup mit aktivem Standby-Modus
-
Konfigurieren von Adresspools (IIP) für eine Citrix Gateway Appliance
-
Zusätzliche PowerShell -Skripts für die Azure-Bereitstellung
-
Bereitstellen einer Citrix ADC VPX-Instanz auf der Google Cloud Platform
-
Automatisieren der Bereitstellung und Konfiguration von Citrix ADC
-
Upgrade und Downgrade einer Citrix ADC Appliance
-
Lösungen für Telekommunikationsdienstleister
-
Lastausgleich Control-Ebenenverkehr, der auf Durchmesser-, SIP- und SMPP-Protokollen basiert
-
Authentifizierung, Autorisierung und Auditing des Anwendungsdatenverkehrs
-
Funktionsweise von Authentifizierung, Autorisierung und Auditing
-
Grundkomponenten der Authentifizierungs-, Autorisierungs- und Überwachungskonfiguration
-
On-Premises Citrix Gateway als Identitätsanbieter für Citrix Cloud
-
Konfigurationsunterstützung für das Cookie-Attribut SameSite
-
Authentifizierung, Autorisierung und Auditing-Konfiguration für häufig verwendete Protokolle
-
Beheben von Problemen mit Authentifizierung und Autorisierung
-
-
-
-
Konfigurieren des erweiterten Richtlinienausdrucks: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Uhrzeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream Analytics-Funktionen
-
Zusammenfassende Beispiele für Standard-Syntaxausdrücke und -richtlinien
-
Tutorialbeispiele für Standard-Syntaxrichtlinien für das Umschreiben
-
Migration von Apache mod_rewrite Regeln auf die Standardsyntax
-
-
-
-
-
Verwalten eines virtuellen Cache-Umleitungsservers
-
Statistiken zum virtuellen Server zur Cache-Umleitung anzeigen
-
Aktivieren oder Deaktivieren eines virtuellen Cache-Umleitungsservers
-
Direkter Richtlinientreffer in den Cache anstelle des Ursprungs
-
Verwalten von Clientverbindungen für einen virtuellen Server
-
Externe TCP-Zustandsprüfung für virtuelle UDP-Server aktivieren
-
-
Ziel-IP-Adresse einer Anforderung in Ursprungs-IP-Adresse übersetzen
-
-
-
Konfigurieren von Citrix ADC als nicht validierenden, sicherheitsbezogene Stub-Resolver
-
Jumbo-Frames-Unterstützung für DNS, um Antworten großer Größen zu verarbeiten
-
Konfigurieren der negativen Zwischenspeicherung von DNS-Einträgen
-
-
GSLB-Entitäten einzeln konfigurieren
-
Anwendungsfall: Bereitstellung einer Domainnamen-basierten Autoscale-Dienstgruppe
-
Anwendungsfall: Bereitstellung einer IP-adressbasierten Autoscale-Service-Gruppe
-
-
Verwalten des Client-Datenverkehrs
-
Konfigurieren von virtuellen Servern ohne Sitzungsaufwand für den Lastenausgleich
-
IP-Adresse und Port eines virtuellen Servers in den Request-Header einfügen
-
Verwenden einer angegebenen Quell-IP für die Backend-Kommunikation
-
Festlegen eines Timeoutwerts für Leerlauf-Clientverbindungen
-
Verwalten des Client-Datenverkehrs auf der Grundlage der Datenverkehrsrate
-
Verwenden eines Quellports aus einem angegebenen Portbereich für die Backend-Kommunikation
-
Konfigurieren der Quell-IP-Persistenz für die Backend-Kommunikation
-
Verwenden von lokalen IPv6-Link-Adressen auf Serverseite eines Lastausgleichs-Setups
-
-
Erweiterte Lastenausgleichseinstellungen
-
Schützen von Anwendungen auf geschützten Servern vor Überlastung des Datenverkehrs
-
Bereinigung von virtuellen Server- und Dienstverbindungen aktivieren
-
Aktivieren oder Deaktivieren der Persistenzsitzung auf TROFS-Diensten
-
Externe TCP-Zustandsprüfung für virtuelle UDP-Server aktivieren
-
Verwalten der Clientverbindung für mehrere Clientanforderungen
-
Standortdetails von der Benutzer-IP-Adresse mit der Geolocation-Datenbank abrufen
-
Verwenden der Quell-IP-Adresse des Clients für die Verbindung zum Server
-
Festlegen eines Grenzwerts für die Anzahl der Clientverbindungen
-
Festlegen eines Grenzwerts für die Anzahl der Anforderungen pro Verbindung zum Server
-
Festlegen eines Schwellenwerts für die an einen Dienst gebundenen Monitore
-
Festlegen eines Timeoutwerts für Leerlauf-Clientverbindungen
-
Festlegen eines Zeitüberschreitungswertes für Serververbindungen im Leerlauf
-
Festlegen eines Grenzwerts für die Bandbreitenauslastung durch Clients
-
Konfigurieren des Lastenausgleichs für häufig verwendete Protokolle
-
Anwendungsfall 3: Konfigurieren des Lastausgleichs im Direktserverrückgabemodus
-
Anwendungsfall 4: Konfigurieren von LINUX-Servern im DSR-Modus
-
Anwendungsfall 5: Konfigurieren des DSR-Modus bei Verwendung von TOS
-
Anwendungsfall 6: Konfigurieren des Lastausgleichs im DSR-Modus für IPv6-Netzwerke über das TOS-Feld
-
Anwendungsfall 7: Konfigurieren des Lastausgleichs im DSR-Modus mit IP over IP
-
Anwendungsfall 8: Lastausgleich im Einarmmodus konfigurieren
-
Anwendungsfall 9: Konfigurieren des Lastausgleichs im Inline-Modus
-
Anwendungsfall 10: Lastausgleich von Intrusion Detection Systemservern
-
Anwendungsfall 11: Isolieren des Netzwerkverkehrs mit Listening-Richtlinien
-
Anwendungsfall 12: Konfigurieren von XenDesktop für den Lastenausgleich
-
Anwendungsfall 13: Konfigurieren von XenApp für den Lastenausgleich
-
Anwendungsfall 14: ShareFile Assistent für den Lastenausgleich von Citrix ShareFile
-
SSL-Offload und Beschleunigung
-
Unterstützung für Intel Coleto SSL-Chip-basierte Plattformen
-
Unterstützung für Gemalto SafeNet Network Hardwaresicherheitsmodul
-
-
-
-
Konfigurieren eines CloudBridge Connector-Tunnels zwischen zwei Rechenzentren
-
Konfigurieren von CloudBridge Connector zwischen Datacenter und AWS Cloud
-
Konfigurieren eines CloudBridge-Connector-Tunnels zwischen einem Datacenter und Azure Cloud
-
Konfigurieren des CloudBridge Connector-Tunnels zwischen Datacenter und SoftLayer Enterprise Cloud
-
-
Punkte, die für ein Hochverfügbarkeits-Setup berücksichtigt werden müssen
-
Synchronisieren von Konfigurationsdateien in einem Hochverfügbarkeitssetup
-
Beschränken des Hochverfügbarkeitssynchronisierungsverkehrs auf ein VLAN
-
Konfigurieren von Hochverfügbarkeitsknoten in verschiedenen Subnetzen
-
Beschränken von Failovers durch Routenmonitore im Nicht-INC-Modus
-
Verwalten von Heartbeat-Nachrichten mit hoher Verfügbarkeit auf einer Citrix ADC Appliance
-
Entfernen und Ersetzen eines Citrix ADC in einem Hochverfügbarkeit-Setup
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已动态机器翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.
Este artigo foi traduzido automaticamente.
这篇文章已经过机器翻译.放弃
Translation failed!
nFactor-Erweiterbarkeit
nFactor Authentication Framework bietet die Flexibilität, Anpassungen hinzuzufügen, um die Anmeldeschnittstelle intuitiver für eine umfassende Benutzererfahrung zu machen. Sie können benutzerdefinierte Anmeldebeschriftungen, benutzerdefinierte Anmeldedaten, Anpassen von Benutzeroberflächenanzeigern usw. hinzufügen.
Mit nFactor kann jeder Faktor einen eigenen Anmeldebildschirm haben. In jedem Anmeldebildschirm können Sie alle Informationen aus einem der vorherigen Faktoren oder mehr Informationen präsentieren, die in anderen Faktoren unsichtbar sind. Der letzte Faktor kann beispielsweise eine informative Seite sein, auf der der Benutzer Anweisungen liest und auf Weiter klickt.
Vor nFactor waren benutzerdefinierte Anmeldeseiten begrenzt, Anpassungen und benötigte Unterstützung. Es war möglich, die tmindex.html zu ersetzen oder Rewrite-Regeln anzuwenden, um ein Teil des Verhaltens zu ändern. Es war jedoch nicht möglich, die zugrunde liegende Funktionalität zu erreichen.
Die folgenden nFactor-bezogenen Anpassungen werden in diesem Thema ausführlich erfasst.
- Anpassen von Anmeldebeschriftungen
- Anpassen der Benutzeroberfläche für die Anzeige von Bildern
- Anpassen des Citrix ADC nFactor Anmeldeformulars
Annahmen
Sie sind mit nFactor, Shell-Befehlen, XML und Texteditoren vertraut.
Voraussetzungen
- Die in diesem Thema beschriebene Anpassung ist nur möglich, wenn das RFWeb-Benutzeroberflächenthema (oder themenbasiert) auf Citrix ADC konfiguriert ist.
- Die Authentifizierungsrichtlinie muss an den virtuellen Server für Authentifizierung, Autorisierung und Überwachung gebunden sein, andernfalls funktioniert der Flow nicht wie vorgesehen. Weitere Informationen finden Sie unter CTX224241.
- Sie haben die folgenden Elemente bezogen auf nFactor
- XML-Schema
- JavaScript
- Authentifizierungsaktionen
- Virtueller Authentifizierungsserver
- Citrix ADC Version 11.1 und höher
Anpassen von Anmeldebeschriftungen
Um Anmeldebeschriftungen anzupassen, benötigen Sie Folgendes:
- Das XML-Schema, das beschreibt, wie die Anmeldeseite aussieht.
- Die Datei script.js, die das JavaScript enthält, das zum Ändern des Rendering-Prozesses verwendet wird.
Funktionsweise
Das JavaScript analysiert die XML-Datei und rendert jedes Element innerhalb des<Requirements>
Tags. Jedes Element entspricht einer Zeile im HTML-Formular. Ein Anmeldefeld ist beispielsweise eine Zeile, das Kennwortfeld ist eine andere Zeile und die Anmeldeschaltfläche. Um neue Zeilen einzuführen, müssen Sie sie in der XML-Schemadatei mit dem StoreFront SDK angeben. Das StoreFront SDK ermöglicht es der Anmeldeseite mit einem XML-Schema, das<Requirement>
Tag zu verwenden und Elemente darauf zu definieren. Diese Elemente ermöglichen es, JavaScript zu verwenden, um alle HTML-Elemente in diesem Raum einzuführen, die benötigt werden. In diesem Fall wird eine Zeile mit etwas Text in Form von HTML erstellt.
Das XML, das verwendet werden kann, ist wie folgt:
<Requirement>
<Credential>
<Type>nsg-custom-cred</Type>
<ID>passwd</ID>
</Credential>
<Label>
<Type>nsg-custom-label</Type>
</Label>
</Requirement>
<Requirement>
: Auf der Anmeldeseite bereitgestellter Speicherplatz. Die Anmeldeinformationen füllen den Speicherplatz aus, und die anderen Teile leiten die Engine in die richtigen Informationen. Geben Sie in diesem Fall nsg-custom-cred ein. Dies ist als Klartext definiert und die Beschriftung wird für ihren Körper definiert.
Die Anforderung XML wird mit dem JavaScript-Code gekoppelt, um die erforderlichen Ergebnisse zu erzielen.
// Custom Label Handler for Self Service Links
CTXS.ExtensionAPI.addCustomAuthLabelHandler({
getLabelTypeName: function () { return "nsg-custom-label"; },
getLabelTypeMarkup: function (requirements) {
return $("< Your HTML Code Here>");
},
// Instruction to parse the label as if it was a standard type
parseAsType: function () {
return "plain";
}
});
//Custom Credential Handler for Self Service Links
CTXS.ExtensionAPI.addCustomCredentialHandler({
getCredentialTypeName: function () { return "nsg-custom-cred"; },
getCredentialTypeMarkup: function (requirements) {
return $("<div/>");
},
});
Der XML-Teil gibt die Anmeldeseite an, was angezeigt werden soll, und der JavaScript-Code stellt den eigentlichen Text bereit. Der Anmeldeinformationshandler öffnet den Raum und die Beschriftung füllt den Raum aus. Da der gesamte Authentifizierungsdatenverkehr jetzt unsichtbar ist, um neu zu schreiben und zu beantworten, können Sie das Aussehen der Seite ändern. Konfiguration zum Anpassen von Anmeldebeschriftungen
-
Erstellen und binden Sie ein Design basierend auf RFWeb.
add vpn portaltheme RfWebUI_MOD -basetheme RfWebUI bind vpn vserver TESTAAA –portaltheme RfWebUI_MOD
Der Pfad für die Dateien, die auf dem Thema basieren, ist im Verzeichnis verfügbar; /var/netscaler/logon/themes/rfwebui_mod
-
Fügen Sie das folgende Snippet am Ende der Datei script.js hinzu:
Hinweis: Wenn die vorherigen Zeilen nicht in die richtige Datei einbezogen werden oder fehlende JavaScript-Funktionen enthalten sind, wird das Laden des XML verhindert. Der Fehler kann nur in der Developer Console des Browsers mit folgendem Text angezeigt werden: Undefined Type nsg-custom-cred.
// Custom Label Handler for Self Service Links CTXS.ExtensionAPI.addCustomAuthLabelHandler({ getLabelTypeName: function () { return "nsg-custom-label"; }, getLabelTypeMarkup: function (requirements) { return $("<a href="https://identity.test.com/identity/faces/register" style="font-size: 16px;" style="text-align: center;">Self Registration</a><br><a href="https://identity.test.com/identity/faces/forgotpassword" style="font-size: 16px;" style="text-align: center;">Forgot Password</a><br><a href="https://identity.test.com/identity/faces/forgotuserlogin" style="font-size: 16px;" style="text-align: center;">Forgot User Login</a>"); }, // Instruction to parse the label as if it was a standard type parseAsType: function () { return "plain"; } }); //Custom Credential Handler for Self Service Links CTXS.ExtensionAPI.addCustomCredentialHandler({ getCredentialTypeName: function () { return "nsg-custom-cred"; }, getCredentialTypeMarkup: function (requirements) { return $("<div/>"); }, });
In diesem Beispiel verwendete Anmeldeschema
<?xml version="1.0" encoding="utf-8"?>
<AuthenticateResponse xmlns="http://citrix.com/authentication/response/1">
<Status>success</Status>
<Result>more-info</Result>
<StateContext/>
<AuthenticationRequirements>
<PostBack>/nf/auth/doAuthentication.do</PostBack>
<CancelPostBack>/Citrix/Authentication/ExplicitForms/CancelAuthenticate</CancelPostBack>
<CancelButtonText>Cancel</CancelButtonText>
<Requirements>
<Requirement>
<Credential>
<ID>login</ID>
<SaveID>Username</SaveID>
<Type>username</Type>
</Credential>
<Label>
<Text>User name</Text>
<Type>plain</Type>
</Label>
<Input>
<AssistiveText>Please supply either domain\username or user@fully.qualified.domain</AssistiveText>
<Text>
<Secret>false</Secret>
<ReadOnly>false</ReadOnly>
<InitialValue></InitialValue>
<Constraint>.+</Constraint>
</Text>
</Input>
</Requirement>
<Requirement>
<Credential>
<ID>passwd</ID>
<SaveID>Password</SaveID>
<Type>password</Type>
</Credential>
<Label>
<Text>Password:</Text>
<Type>plain</Type>
</Label>
<Input>
<Text>
<Secret>true</Secret>
<ReadOnly>false</ReadOnly>
<InitialValue/>
<Constraint>.+</Constraint>
</Text>
</Input>
</Requirement>
<Requirement>
<Credential>
<Type>nsg-custom-cred</Type>
<ID>passwd</ID>
</Credential>
<Label>
<Type>nsg-custom-label</Type>
</Label>
</Requirement>
<Requirement>
<Credential>
<ID>loginBtn</ID>
<Type>none</Type>
</Credential>
<Label>
<Type>none</Type>
</Label>
<Input>
<Button>Please Log On</Button>
</Input>
</Requirement>
</Requirements>
</AuthenticationRequirements>
</AuthenticateResponse>
Führen Sie die folgenden Befehle aus, um benutzerdefinierte Schema in config zu laden.
add authentication loginSchema custom -authenticationSchema custom.xml
add authentication loginSchemaPolicy custom -rule true -action custom
bind authentication vserver AAATEST -policy custom -priority 100 -gotoPriorityExpression END
Die folgende Abbildung zeigt die Anmeldeseite, die mit dieser Konfiguration gerendert wird.
Anpassen der Benutzeroberfläche für die Anzeige von Bildern
nFactor ermöglicht eine individuelle Anzeige unter Verwendung von Loginschema-Dateien. Möglicherweise sind weitere Anpassungen erforderlich, die von den integrierten Loginschemadateien angeboten werden. Beispiel: Anzeigen eines Hyperlinks oder Schreiben einer benutzerdefinierten Logik in der Benutzeroberfläche. Diese können mit benutzerdefinierten Anmeldeinformationen erreicht werden, die aus der Loginschema-Erweiterung und der entsprechenden Javascript-Datei bestehen.
Für die Anpassung der Benutzeroberfläche zum Anzeigen von Images wird ein Bereitstellungsfluss in der Integration Citrix ADC-Swivel als Beispiel verwendet.
Es gibt zwei Faktoren in diesem Fluss.
- Erster Faktor: Überprüft die AD-Anmeldeinformationen des Benutzers.
- Zweiter Faktor: Auffordert zur Benutzeranmeldung basierend auf der Gruppenmitgliedschaft.
In diesem Flow durchlaufen alle Benutzer den ersten Faktor. Vor dem zweiten Faktor gibt es einen Pseudofaktor, um zu überprüfen, ob einige Benutzer vom Schwenkfaktor weggelassen werden können. Wenn der Benutzer Schwenkfaktor benötigt, werden ein Bild und ein Textfeld angezeigt, um Code einzugeben.
Lösung
Die Lösung zum Anpassen der Benutzeroberfläche zum Anzeigen von Bildern enthält zwei Teile;
- Loginschema-Erweiterung.
- Benutzerdefiniertes Skript zum Verarbeiten der Loginschema-Erweiterung.
Loginschema-Erweiterung
Um das Rendering von Formularen zu steuern, wird eine benutzerdefinierte ‘ID’ /’ Anmeldeinformationen ‘in das Loginschema injiziert. Dies kann durch Wiederverwendung vorhandener Schema und Änderung gemäß der Anforderung erfolgen.
In diesem Beispiel wird ein Loginschema mit nur einem Textfeld (z. B. /nsconfig/loginschema/loginschema/onlyPassword.xml) berücksichtigt. Das folgende Snippet wird dem Loginschema hinzugefügt.
<Requirement><Credential><ID>swivel_cred</ID><Type>swivel_cred</Type><Input><Text><Hidden>true</Hidden><InitialValue>${http.req.user.name}</InitialValue></Text></Input></Credential></Requirement>
Im Snippet wird swivel_cred als Typ der Anmeldeinformationen angegeben. Da dies nicht als integrierte Anmeldeinformationen erkannt wird, sucht die Benutzeroberfläche nach einem Handler für diesen Typ und ruft sie auf, falls vorhanden.Für diese Anmeldeinformationen wird ein Anfangswert gesendet, der ein Ausdruck ist, den Citrix ADC dynamisch ausfüllt. In diesem Beispiel ist es der Name des Benutzers, der verwendet wird, um den Swivel Server über den Benutzernamen zu benachrichtigen. Es wird möglicherweise nicht ständig benötigt, oder es kann mit einigen anderen Daten erweitert werden. Diese Angaben müssen nach Bedarf hinzugefügt werden.
Javascript zum Behandeln benutzerdefinierter Anmeldeinformationen
Wenn die Benutzeroberfläche eine benutzerdefinierte Anmeldeinformationen findet, sucht sie nach einem Handler. Alle benutzerdefinierten Handler werden in /var/netscaler/logon/logonpoint/custom/script.js für das Standardportdesign geschrieben.
Für benutzerdefinierte Portaldesigns kann script.js im Verzeichnis gefunden werden/var/netscaler/logon/themes/<custom_theme>/
.
Das folgende Skript wird hinzugefügt, um Markups für benutzerdefinierte Anmeldeinformationen zu rendern.
CTXS.ExtensionAPI.addCustomCredentialHandler({
// The name of the credential, must match the type returned by the server
getCredentialTypeName: function () { return "swivel_cred"; },
// Generate HTML for the custom credential
getCredentialTypeMarkup: function (requirements) {
var div = $("<div></div>");
var image = $("<img/>");
var username = requirements.input.text.initialValue; //Get the secret from the response
image.attr({
"style" : "width:200px;height:200px;",
"id" : "qrcodeimg",
"src" : "https://myswivelserver.citrix.com:8443/pinsafe/SCImage?username=" + username
});
div.append(image);
return div;
}
});
Dieses Snippet dient der Verarbeitung des Markups für ‘swivel_cred’. Der hervorgehobene Anmeldeinformationsname muss mit dem zuvor in der Loginschemaerweiterung angegebenen ‘Typ’ übereinstimmen. Um Markup zu generieren, muss ein Bild hinzugefügt werden, dessen Quelle auf Swivel Server verweist. Sobald dies erledigt ist, lädt die Benutzeroberfläche das Bild vom angegebenen Speicherort. Da dieses Anmeldeschema auch über ein Textfeld verfügt, rendert die Benutzeroberfläche dieses Textfeld.
Hinweis: Der Administrator kann den Stil des Bildelements ändern, um die Größe des Bildes zu ändern. Derzeit ist es für 200x200 Pixel konfiguriert.
Konfiguration zum Anpassen der Benutzeroberfläche für die Anzeige von Bildern
nFactor Konfiguration ist besser von unten nach oben konstruiert, das ist der letzte Faktor zuerst, da Sie versuchen, ‘NextFactor’ für die vorherigen Faktoren anzugeben, den Namen des nachfolgenden Faktors benötigen.
Schwenkfaktor-Konfiguration:
add loginschema swivel_image –authenticationSchema /nsconfig/loginschema/SwivelImage.xml
add authentication policylabel SwivelFactor –loginSchema swivel_image
bind authentication policylabel SwivelFactor –policy <policy-to-check-swivel-image> -priority 10
Hinweis: Laden Sie SwivelImage.xml aus dem im Beispiel verwendeten Loginschema herunter.
Pseudofaktor für Gruppenprüfungskonfiguration:
add authentication policylabel GroupCheckFactor
add authentication policy contractors_auth_policy –rule ‘http.req.user.is_member_of(“contractors”)’ –action NO_AUTHN
add authentication policy not_contractors _auth_policy–rule true –action NO_AUTHN
bind authentication policylabel GroupCheckFactor –policy contractors_auth_policy –pri 10 –nextFactor SwivelFactor
bind authentication policylabel GroupCheckFactor –policy not_contractors_auth_policy –pri 20
Erster Faktor für die Active Directory Anmeldung:
add ldapAction <>
add authentication policy user_login_auth_policy –rule true –action <>
bind authentication vserver <> -policy user_login_auth_policy –pri 10 –nextFactor GroupCheckFactor
In der Konfiguration werden drei Faktoren angegeben, von denen einer implizit/pseudo ist.
In diesem Beispiel verwendete Anmeldeschema
Im Folgenden finden Sie ein Beispielschema mit Swivel-Anmeldeinformationen und einem Textfeld.
Hinweis: Beim Kopieren von Daten für den Webbrowser werden Anführungszeichen möglicherweise anders angezeigt. Kopieren Sie Daten in Editoren wie Notepad, bevor Sie sie in Dateien 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>swivel_cred</ID><Type>swivel_cred</Type><Input><Text><Hidden>true</Hidden><InitialValue>${http.req.user.name}</InitialValue></Text></Input></Credential></Requirement>
<Requirement><Credential><ID>passwd</ID><SaveID>ExplicitForms-Password</SaveID><Type>password</Type></Credential><Label><Text>Password:</Text><Type>plain</Type></Label><Input><Text><Secret>true</Secret><ReadOnly>false</ReadOnly><InitialValue></InitialValue><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>Hello ${http.req.user.name}, Please enter passcode from above image.</Text><Type>confirmation</Type></Label><Input /></Requirement>
<Requirement><Credential><ID>saveCredentials</ID><Type>savecredentials</Type></Credential><Label><Text>Remember my password</Text><Type>plain</Type></Label><Input><CheckBox><InitialValue>false</InitialValue></CheckBox></Input></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>
Ausgabe
Sobald die Konfiguration durchgeführt wurde, wird das folgende Bild angezeigt.
Hinweis: Bildhöhe und -platzierung können im JavaScript geändert werden.
Anpassen des Citrix ADC nFactor-Anmeldeformulars zum Ein- oder Ausblenden von Feldern
Die RFWeb-Benutzeroberfläche von Citrix Gateway ermöglicht eine Vielzahl von Anpassungen. Diese Funktion in Kombination mit dem nFactor-Authentifizierungsframework ermöglicht Kunden die Konfiguration komplexer Flows ohne Kompromisse bei bestehenden Workflows.
In diesem Beispiel stehen in der Liste Anmeldetyp zwei Authentifizierungsoptionen OAuth und LDAP zur Verfügung. Wenn das Formular zum ersten Mal geladen wird, werden Benutzernamen und Kennwortfelder (LDAP wird zuerst angezeigt) angezeigt. Wenn OAuth ausgewählt ist, werden alle Felder ausgeblendet, da OAuth die Verlagerung der Authentifizierung an einen Drittanbieterserver impliziert. Auf diese Weise kann der Administrator intuitive Workflows je nach Benutzerfreundlichkeit konfigurieren.
Hinweis:
- Die Werte in der Liste Anmeldetyp können mit einfachen Änderungen an der Skriptdatei geändert werden.
- In diesem Abschnitt wird nur der UI-Teil des Flows beschrieben. Die Laufzeitbehandlung der Authentifizierung liegt außerhalb des Geltungsbereichs dieses Artikels. Für die Authentifizierungskonfiguration wird empfohlen, sich in der nFactor-Dokumentation zu verweisen.
So passen Sie das nFactor-Anmeldeformular an
Anpassen des nFactor-Anmeldeformulars kann in zwei Teile unterteilt werden
- Senden des rechten Loginschemas an die Benutzeroberfläche
- Schreiben eines Handlers zum Interpretieren von Loginschema- und Benutzerauswahlen
Rechtes Loginschema an die Benutzeroberfläche senden
In diesem Beispiel wird ein einfacher Anspruch/Anforderung im Loginschema gesendet.
Dazu wird die Datei SingleAuth.xml geändert. SingleAuth.xml wird mit der Citrix ADC Firmware ausgeliefert und befindet sich im Verzeichnis /nsconfig/loginschema/loginSchema.
Schritte zum Senden von Loginschema:
-
Melden Sie sich über SSH an und legen Sie sie in die Shell ab (Typ ‘shell’).
-
Kopieren Sie SingleAuth.xml zur Änderung in eine andere Datei.
Hinweis: Der Zielordner unterscheidet sich vom Standardordner für Citrix ADC Anmeldeschemas.
cp /nsconfig/loginschema/LoginSchema/SingleAuth.xml /nsconfig/loginschema/SingleAuthDynamic.xml
-
Fügen Sie den folgenden Anspruch zu SingleAuthDynamic.xml hinzu.
<Requirement><Credential><ID>nsg_dropdown</ID><Type>nsg_dropdown</Type></Credential><Label><Text>Logon Type:</Text><Type>plain</Type></Label></Requirement>
-
Konfigurieren Sie Citrix ADC, um dieses Anmeldeschema zu senden, um das erste Formular zu laden.
add loginschema single_auth_dynamic –authenticationSchema SingleAuthDynamic.xml add loginschemaPolicy single_auth_dynamic –rule true –action single_auth_dynamic bind authentication vserver aaa_nfactor –policy single_auth_dynamic –pri 10
Skriptänderungen zum Laden von Formularen und Behandeln von Benutzerereignissen
Sie können das JavaScript ändern, mit dem der Administrator die Anzeige für das Anmeldeformular anpassen kann. In diesem Beispiel werden Benutzername und Kennwort angezeigt, wenn LDAP ausgewählt ist, und werden ausgeblendet, wenn OAuth ausgewählt ist. Der Administrator kann auch nur das Kennwort ausblenden. Administratoren müssen das folgende Snippet an script.js anhängen, das sich im Verzeichnis /var/netscaler/logon/logonPoint/custom befindet.
Hinweis: Da es sich bei diesem Verzeichnis um ein globales Verzeichnis handelt, erstellen Sie ein Portaldesign und bearbeiten Sie die Datei “script.js” in diesem Ordner unter"/var/netscaler/logon/themes/<THEME_NAME>"
.
CTXS.ExtensionAPI.addCustomCredentialHandler({
// The name of the credential, must match the type returned by the server
getCredentialTypeName: function () { return "nsg_dropdown"; },
// Generate HTML for the custom credential
getCredentialTypeMarkup: function (requirements) {
var div = $("<div></div>");
var select = $("<select name='nsg_dropdown'></select>").attr("id", "nsg_dropdown");
var rsa = $("<option></option>").attr("selected", "selected").text("LDAP").val("LDAP");
var OAuthID = $("<option></option>").text("OAuth").val("OAuth");
select.append(rsa, OAuthID);
select.change(function(e) {
var value = $(this).val();
var ldapPwd = $($(".credentialform").find(".CredentialTypepassword")[0]);
var ldapUname = $($(".credentialform").find(".CredentialTypeusername"));
if(value == "OAuth") {
if (ldapPwd.length)
ldapPwd.hide();
if (ldapUname.length)
ldapUname.hide();
} else if(value == "LDAP") {
if (ldapPwd.length)
ldapPwd.show();
if (ldapUname.length)
ldapUname.show();
}
});
div.append(select);
return div;
}
});
Anwendererfahrung
Wenn ein Endbenutzer die Anmeldeseite zum ersten Mal lädt, wird der folgende Bildschirm angezeigt.
Wenn OAuth unter Anmeldetyp ausgewählt ist, werden die Felder Benutzername und Kennwort ausgeblendet.
Wenn LDAP ausgewählt ist, werden Benutzername und Kennwort angezeigt. Auf diese Weise kann die Anmeldeseite basierend auf der Benutzerauswahl dynamisch geladen werden.
In diesem Beispiel verwendete Anmeldeschema
<?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>login</ID><SaveID>ExplicitForms-Username</SaveID><Type>username</Type></Credential><Label><Text>User name</Text><Type>plain</Type></Label><Input><AssistiveText>Please supply either domain\username or user@fully.qualified.domain</AssistiveText><Text><Secret>false</Secret><ReadOnly>false</ReadOnly><InitialValue></InitialValue><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><ID>passwd</ID><SaveID>ExplicitForms-Password</SaveID><Type>password</Type></Credential><Label><Text>Password:</Text><Type>plain</Type></Label><Input><Text><Secret>true</Secret><ReadOnly>false</ReadOnly><InitialValue></InitialValue><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><ID>nsg_dropdown</ID><Type>nsg_dropdown</Type></Credential><Label><Text>Logon Type:</Text><Type>plain</Type></Label></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>First factor</Text><Type>confirmation</Type></Label><Input /></Requirement>
<Requirement><Credential><ID>saveCredentials</ID><Type>savecredentials</Type></Credential><Label><Text>Remember my password</Text><Type>plain</Type></Label><Input><CheckBox><InitialValue>false</InitialValue></CheckBox></Input></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>
Wichtig: Weitere Informationen zu verschiedenen Themen im Zusammenhang mit nFactor finden Sie unter nFactor.
Teilen
Teilen
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select Do Not Agree to exit.