ADC
Merci pour vos commentaires

Ce article a été traduit automatiquement. (Clause de non responsabilité)

Définir un cookie à l’aide de NFactor

Vous pouvez appliquer les étiquettes personnalisées nFactor et définir un cookie en tant que facteur du flux d’authentification. Grâce aux étiquettes personnalisées, vous pouvez utiliser JavaScript pour manipuler le schéma de connexion.

Pour définir un cookie en tant que facteur, vous n’avez pas besoin d’afficher d’informations à l’utilisateur, ce qui est effectué sans connexion de schéma. Au lieu de cela, vous devez interagir avec le navigateur de l’utilisateur pour demander au schéma de connexion de stocker les données souhaitées. Un schéma de connexion est nécessaire pour définir le cookie lorsque la page est chargée. Le cookie est défini avec une étiquette personnalisée et un code JavaScript.

Pour implémenter un facteur qui définit un cookie, créez un fichier XML appelé cookie.xml pour stocker le schéma dans le répertoire /nsconfig/loginschema/ avec le contenu suivant :

<?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>

Dans ce code XML ;

  • L’étiquette personnalisée nsg_cookie est utilisée pour créer le cookie et envoyer le formulaire, ainsi que le bouton du formulaire.
  • Le RFWebUI_Custom est le nouveau thème du portail basé sur le thème RFWebUI.
  1. Créez un thème de portail basé sur le thème RFWebUI.

    add vpn portaltheme RfWebUI_custom -basetheme RfWebUI

    Cette commande crée un dossier pour ce thème dans /var/netscaler/logon/themes/RFWEBUI_CUSTOM

  2. Modifiez le fichier /var/netscaler/logon/themes/RfWebUI_custom/script.js et ajoutez le script suivant :

    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=CookieValue;" + expires + ";path=/"; //Submit form document.getElementById('loginBtn').click(); }); return div; } });

    Ce code effectue les opérations suivantes :

    • Attend que le navigateur ait fini de charger la page
    • Définit un cookie appelé NSC_COOKIE_NAME avec la valeur CookieValue, valide pendant 1000 jours
    • Soumet automatiquement le formulaire.

    Le cookie est créé et l’utilisateur n’a pas besoin d’interagir avec la page.

  3. Créez un schéma de connexion à lier à l’étiquette de stratégie qui représente le facteur de cookie défini.

    add authentication loginSchema Cookie_LS -authenticationSchema "/nsconfig/loginschema/cookie.xml"
  4. Créez une stratégie d’authentification NO_AUTHN à lier à l’étiquette de stratégie qui représente le facteur de cookie défini.

    add authentication Policy NO_AUTHN_POL -rule TRUE -action NO_AUTHN

    Cette stratégie est toujours évaluée comme vraie, en déplaçant l’utilisateur vers le facteur suivant ou en complétant le flux d’authentification.

  5. Liez le thème du portail RFWebUI_Custom au serveur virtuel NetScaler Gateway ou au serveur virtuel NetScaler AAA.

La version officielle de ce document est en anglais. Certains contenus de la documentation Cloud Software Group ont été traduits de façon automatique à des fins pratiques uniquement. Cloud Software Group n'exerce aucun contrôle sur le contenu traduit de façon automatique, qui peut contenir des erreurs, des imprécisions ou un langage inapproprié. Aucune garantie, explicite ou implicite, n'est fournie quant à l'exactitude, la fiabilité, la pertinence ou la justesse de toute traduction effectuée depuis l'anglais d'origine vers une autre langue, ou quant à la conformité de votre produit ou service Cloud Software Group à tout contenu traduit de façon automatique, et toute garantie fournie en vertu du contrat de licence de l'utilisateur final ou des conditions d'utilisation des services applicables, ou de tout autre accord avec Cloud Software Group, quant à la conformité du produit ou service à toute documentation ne s'applique pas dans la mesure où cette documentation a été traduite de façon automatique. Cloud Software Group ne pourra être tenu responsable de tout dommage ou problème dû à l'utilisation de contenu traduit de façon automatique.
Définir un cookie à l’aide de NFactor