Réinitialisation du mot de passe Scripts d’extension

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 9 minutes de lecture
  • Les scripts d’extension vous permettent d’étendre Réinitialisation du mot de passe les fonctionnalités de stockage des informations d’identification, de vérification ou d’identification.

    Réinitialisation du mot de passe Includes de script d’extension

    Chaque include de script est associé à une catégorie spécifique, disponible dans le champ approprié d’un Réinitialisation du mot de passe formulaire.

    Remarque :
    Créez des scripts d’extension uniquement à partir du formulaire Script d’extension Réinitialisation du mot de passe (Réinitialisation du mot de passe > Extensions > Nouveau script d’extension). Les scripts d’extension sont des includes de script à usage spécial qui ne sont pas créés dans le Définition du système > Inclusions de script interface utilisateur. Pour utiliser un include de script comme script d’extension, vous devez le définir sur l’état Actif .

    Catégorie d’include de script « Contrôle d’inscription »

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Contrôle d’inscription Vérifie si un utilisateur est inscrit pour une vérification donnée. Processus (params) Paramètres :
    • params.userId : le sys_id de l’utilisateur à vérifier (table : sys_user).
    • params.verificationId : sys_id de la vérification à vérifier (table : pwd_verification).
    Renvoie : (booléen) vrai, si l’utilisateur est inscrit à la vérification spécifiée ; sinon, c’est faux.

    Cet exemple de vérification d’inscription signale que l’utilisateur est inscrit si les deux paramètres attendus sont fournis. Le code serait contenu dans le champ Script d’un script d’extension nommé SampleEnrollmentCheck :

    var SampleEnrollmentCheck = Class.create ();
    SampleEnrollmentCheck. prototype = {
      category:'password_reset.extension.enrollment_check', // DO NOT REMOVE THIS LINE!
     
       /**********
       * Returns boolean telling whether the user is enrolled.
       * This sample returns true if both parameters are supplied, false otherwise 
       *
       * @param params.userId         The sys-id of the user being checked (table: sys_user)
       * @param params.verificationId The sys-id of the verification being checked (table: pwd_verification)
       * @return Boolean indicating whether the user is enrolled into the specified verification
       **********/
      process:function (params) {return (params.userId && params.verificationId)? true:false; },
     
      type:'SampleEnrollmentCheck'};

    Catégorie d’include de script « Processeur de formulaire d’inscription »

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Processeur de formulaire d’inscription Vérifie si toutes les informations nécessaires ont été recueillies auprès de l’utilisateur. Stocke les informations afin de pouvoir être utilisées à des fins de vérification lorsque l’utilisateur réinitialise son mot de passe. Processus (params) Paramètres :
    • params.resetRequestId : sys_id de la demande actuelle Réinitialisation du mot de passe (table : pwd_reset_request).
    • params.userId : le sys_id de l’utilisateur à vérifier (table : sys_user).
    • params.verificationId : sys_id de la vérification à traiter (table : pwd_verification).
    • request : objet du formulaire request. Les champs du formulaire sont accessibles avec request.getParameter('<element-id>').
    Les informations suivantes doivent être ajoutées à l’état du processus d’inscription :
    • gs.getSession().putProperty(« result.status »,status) : indique si l’utilisateur a été inscrit avec succès.
    • gs.getSession().putProperty(« result.message »,message) : message associé à renvoyer à l’interface utilisateur, tel qu’un message d’erreur détaillé.
    • gs.getSession().putProperty(« result.value »,value) : une valeur personnalisée associée à l’inscription.
    Renvoie : (booléen) vrai, si l’utilisateur est inscrit à la vérification spécifiée ; sinon, c’est faux.

    Cet exemple traite une soumission de formulaire d’inscription avec succès si la réponse soumise par l’utilisateur a réussi. Le code serait contenu dans le champ Script d’un script d’extension nommé SampleEnrollmentProcessor :

    var SampleEnrollmentProcessor = Class.create ();
    SampleEnrollmentProcessor.prototype = {
        category: 'password_reset.extension.enrollment_form_processor', // DO NOT REMOVE THIS LINE!
     
         /**********
        * Process the enrollment form request, and return whether the user was successfully enrolled.
        * 
        * @param params.userId         The sys_id of the user trying to enroll (table: sys_user)
        * @param params.verificationId The sys_id of the verification to be enrolled into (table: pwd_verification)
        * @param params.enrollmentId   The sys_id of this enrollment process
        * @param request               The form request object. Felds in the form can be accessed with
        *                                           request.getParameter('<element-id>')
        * @return boolean telling whether the user was successfully enrolled
        * The following information should be added to the state of the enrollment process
        *     gs.getSession().putProperty("result.status",status) - whether the user was successfully enrolled
        *     gs.getSession().putProperty("result.message",message) - an associated message to be returned 
        *             to the UI. Eg. a detailed error message
        *     gs.getSession().putProperty("result.value",value) - custom value associated with the enrollment
        **********/
        processForm:function (params, request) {var verificationId = params.verificationId; var sampleInput = request.getParameter ('sample_input');
     
    	 if (gs.nil (verificationId) || (sampleInput!= 'success')) { return false; }
     
    	 var now_GR = new GlideRecord ('sys_user');
    	now_GR.get (params. userId);
    	now_GR.print ('User:' + now_GR.getValue ('user_name') + ' successfully enrolled'); return true; },
        type: 'SampleEnrollmentProcessor' };

    Catégorie d’include de script « Processeur de formulaire d’identification »

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Processeur de formulaire d’identification Traite une demande de formulaire d’identification. processForm(params, request) Paramètres :
    • params.processId : sys_id du processus d’appel Réinitialisation du mot de passe (table : pwd_process).
    • request : objet du formulaire request. Les champs du formulaire sont accessibles avec request.getParameter('<element-id>'). Utilisez request.getParameter('sysparm_user_id') pour récupérer l’ID d’utilisateur qui a été saisi dans le formulaire.
    Renvoie : le sys_id de l’utilisateur qui correspond à l’entrée demandée. Renvoie null si aucun utilisateur n’a été trouvé.

    Cet exemple tente d’identifier l’utilisateur dans la table sys_user à partir d’un nom d’utilisateur soumis à partir du formulaire d’identification. Le code serait contenu dans le champ Script d’un script d’extension nommé PwdIdentifyViaUsername :

    var PwdIdentifyViaUsername = Class.create ();
    PwdIdentifyViaUsername. prototype = {
        category: 'password_reset.extension.identification_form_processor', // DO NOT REMOVE THIS LINE!
     
        initialize: function () { },
     
       /**********
       * Process the identification form request, and returns the user's sys_id. If user was not identified return null.
       *
       * @param params.processId   The sys_id of the calling Réinitialisation du mot de passe process (table: pwd_process)
       * @param request            The form request object. fields in the form can be accessed with
       *  request.getParameter('<element-id>')
       *  Supported request parameters: sysparm_user_id - the user identifier value entered in the form                       
       * @return The sys_id of the user that corresponds to the requested input; 
       *  if no user was found, null should be returned
       **********/
       processForm: function (params, request) {var processId = params. processId; var sysparm_user_id = request.getParameter ('sysparm_user_id');
          now_GR = new GlideRecord ('sys_user') ;
          now_GR.addQuery ('user_name', sysparm_user_id) ;
          now_GR.query (); if (!now_GR.next ()) {return null; } return now_GR.sys_id;},
     
        type:'PwdIdentifyViaUsername' }

    Catégorie d’include de script 'Générateur de mot de passe'

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Générateur de mot de passe Renvoie un mot de passe généré automatiquement. Processus (params) Parameters :params.processId : sys_id du processus d’appel Réinitialisation du mot de passe (table : pwd_process). Renvoie : (chaîne) un mot de passe généré automatiquement.

    Cet exemple génère aléatoirement un mot de passe à partir d’un mot de base et de chiffres. Le mot de base est sélectionné en fonction de la banque d’informations d’identification. Le code serait contenu dans le champ Script d’un script d’extension nommé SamplePasswordGenerator :

    var SamplePasswordGenerator = Class.create ();
    SamplePasswordGenerator. prototype = {
      category: 'password_reset.extension.password_generator', // DO NOT REMOVE THIS LINE!
     
       /**********
       * Returns an auto-generated string password.
       * This sample randomly generates 4 digits to add to the password.
       * 
       * @param params.credentialStoreId The sys_id of the target Réinitialisation du mot de passe credential store to generate 
       *  a password for (table: pwd_cred_store)
       * @return An auto-generated string password
       **********/
      process:function (params) { var basePassword ;
     
    	 var now_GR = new GlideRecord ('pwd_cred_store');
    	now_GR.addQuery ('name', 'Local ServiceNow Instance');
    	now_GR.query (); if (now_GR.next ()) { if (params.credentialStoreId = now_GR.getValue ('sys_id'))
    			basePassword = "Password"; else
    			basePassword = "Dorwssap"; } return this. generateSimple (basePassword); },
     
      generateSimple:function (base) {var pwd = base; var numbers = '0123456789'; var length = 4;
     
         for (var i  = 0 , n  = numbers. length ; i  < length ; i ++) {
            pwd += numbers.charAt (Math.floor (Math.random () * n) + 1); } return pwd;}, 
     
      type:'SamplePasswordGenerator'} ;

    Catégorie d’include de script « Post Réinitialisation »

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Post réinitialisation Effectue des opérations supplémentaires une fois le Réinitialisation du mot de passe processus terminé. Processus (params) Paramètres :
    • params.resetRequestId : sys_id du processus d’appel Réinitialisation du mot de passe (table : pwd_process).
    • params.wfSuccess : un marqueur indiquant si le workflow s’est terminé avec succès. Vrai si, et seulement si, réussi.
    Renvoie : nul

    Cet exemple ajoute les demandes de réinitialisation ayant échoué au journal système. Le code serait contenu dans le champ Scriptd’un script d’extension nommé PwdPostProcessor :

    var PwdPostProcessor = Class.create ();
     
    PwdPostProcessor. prototype = {
        category: 'password_reset.extension.post_reset_script', // DO NOT REMOVE THIS LINE!
     
        initialize:function () { },
     
         /**********
         * Execute custom actions after the Réinitialisation du mot de passe process has completed.
        * 
        * @param params.resetRequestId The sys_id of the current Réinitialisation du mot de passe request (table: pwd_reset_request)
        * @param params.wfSuccess      A flag indicating if the workflow completed sucessfully. 
        *  True if (and only if) successful.
        * @return no return value
        **********/
        process: function (params) {if (!params. wfSuccess) {
               now_GS.log ('[PwdPostProcessor.process] failure post processing for request [' + params. resetRequestId + ']'); }
     
             // We could place actions here that we always want executed return; },
     
        type:'PwdPostProcessor' }

    Le script « Recherche de compte utilisateur » inclut la catégorie

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Recherche de compte utilisateur Obtient l’ID de compte de banque d’identifiants pour un utilisateur donné. Processus (params) Parameters :params.userId : le sys_id de l’utilisateur vérifié (table : sys_user). Renvoie : (chaîne) l’ID de compte de banque d’identifiants pour l’utilisateur donné.

    Cet exemple obtient le compte de banque d’identifiants pour un utilisateur. Ce code serait contenu dans le champ Script d’un script d’extension nommé SampleUserAccountLookupExtension :

    var SampleUserAccountLookupExtension = Class.create ();
    SampleUserAccountLookupExtension. prototype = {
      category:'password_reset.extension.user_account_lookup', // DO NOT REMOVE THIS LINE!
     
       /**********
      * Returns the credential store account id for a given user.
      * This sample echoes the user_id supplied as the credential store account id for that user.
      * 
      * @param params.userId  The sys_id of the user being checked (table: sys_user)
      * @return               The credential store account id (string) for a given user
      **********/
      process:function (params) {return params.userId;},
     
      type:'SampleUserAccountLookupExtension' }

    Catégorie d’include de script « Processeur de formulaire de vérification »

    Catégorie d’include de script Description Signature de méthode Champs d'entrée Champs de sortie
    Processeur de formulaire de vérification Traite une demande de formulaire de vérification et indique si l’utilisateur a été vérifié ou non. processForm(params, request) Paramètres :
    • params.resetRequestId : sys_id de la demande actuelle Réinitialisation du mot de passe (table : pwd_reset_request).
    • params.userId : le sys_id de l’utilisateur à vérifier (table : sys_user).
    • params.verificationId : sys_id de la vérification à traiter (table : pwd_verification).
    • request : objet du formulaire request. Les champs du formulaire sont accessibles avec request.getParameter('<element-id>').
    Renvoie : (booléen) vrai, si l’utilisateur est vérifié ; sinon, c’est faux.

    Cet exemple montre un processeur de vérification qui renvoie la valeur vrai uniquement si l’utilisateur a envoyé ok dans le champ d’entrée ; sinon, il renvoie la valeur false. Le code serait contenu dans le champ Script d’un script d’extension nommé SampleVerificationFormProcessor :

    var SampleVerificationFormProcessor = Class.create ();
    SampleVerificationFormProcessor.prototype = {
      category:'password_reset.extension.verification_form_processor', // DO NOT REMOVE THIS LINE!
     
       /**********
       * Process the verification form request, and return whether the user was successfully verified.
       * This is a sample verification processor returns true only if the user sent "ok" in the input field; 
       * otherwise, it returns false.
       * 
       * @param params.resetRequestId The sys_id of the current Réinitialisation du mot de passe request (table: pwd_reset_request)
       * @param params.userId         The sys_id of the user trying to be verified (table: sys_user)
       * @param params.verificationId The sys_id of the verification to be processed (table: pwd_verification)
       * @param request               The form request object. Fields in the form can be accessed with
       * request.getParameter('<element-id>')
       * @return Boolean indicating whether the user is successfully verified
       **********/
      processForm:function (params, request) {if (request.getParameter ("sysparm_simple_input") == "ok") return true; else return false; },
     
      type:'SampleVerificationFormProcessor'};