Passwortzurücksetzung Erweiterungsskripts
Mit Erweiterungsskripts können Sie erweitern PasswortzurücksetzungFunktionalität in Anmeldeinformationsspeicher-, Verifizierungs- oder Identifizierungstypen.
Passwortzurücksetzung Erweiterungsskripteinbindungen
Jede Skripteinbindung ist einer bestimmten Kategorie zugeordnet, die im entsprechenden Feld von verfügbar ist PasswortzurücksetzungFormular.
Skripteinbindungskategorie „Registrierungsprüfung“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Registrierungsprüfung | Überprüft, ob ein Anwender für eine bestimmte Verifizierung registriert ist. | Prozess (Parameter) | Parameter:
|
Gibt Folgendes zurück: (boolescher wert) „wahr“, wenn der Anwender für die angegebene Verifizierung registriert ist; andernfalls „falsch“. |
Dieses Beispiel für die Registrierungsprüfung signalisiert, dass der Anwender registriert ist, wenn beide erwarteten Parameter angegeben werden. Der Code wäre in enthalten Skript Feld eines Erweiterungsskripts mit dem Namen StichprobenRegistrierungsprüfung :
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'};
Skripteinbindungskategorie „Registrierungsformularprozessor“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Registrierungsformularprozessor | Überprüft, ob alle erforderlichen Informationen vom Anwender erfasst wurden. Speichert die Informationen, damit sie zur Verifizierung verwendet werden können, wenn der Anwender sein Passwort zurücksetzt. | Prozess (Parameter) | Parameter:
Die folgenden Informationen müssen dem Status des Registrierungsprozesses hinzugefügt werden:
|
Gibt Folgendes zurück: (boolescher wert) „wahr“, wenn der Anwender für die angegebene Verifizierung registriert ist; andernfalls „falsch“. |
Dieses Beispiel verarbeitet die Übermittlung eines Registrierungsformulars erfolgreich, wenn die vom Anwender übermittelte Antwort erfolgreich war. Der Code wäre in enthalten Skript Feld eines Erweiterungsskripts mit dem Namen SampleRegistrierungsprozessor :
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' };
Skripteinbindungskategorie „Identifizierungsformularprozessor“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Identifizierungsformularprozessor | Verarbeitet eine Identifizierungsformularanforderung. | ProcessForm (Parameter, Anforderung) | Parameter:
|
Gibt zurück: Die sys_ID des Anwenders, die der angeforderten Eingabe entspricht. Gibt Null zurück, wenn kein Anwender gefunden wurde. |
In diesem Beispiel wird versucht, den Anwender in der Tabelle „sys_user“ anhand eines Anwendernamens zu identifizieren, der aus dem Identifizierungsformular übermittelt wurde. Der Code wäre in enthalten Skript Feld eines Erweiterungsskripts mit dem Namen PwdIdentifyViaAnwendername :
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 Passwortzurücksetzung 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' }
Skripteinbindungskategorie „Passwortgenerator“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Passwortgenerator | Gibt ein automatisch generiertes Passwort zurück. | Prozess (Parameter) | Parameter: params.processId – Die sys_ID des Aufrufs PasswortzurücksetzungProzess (Tabelle: pwd_Process). | Gibt: (Zeichenfolge) ein automatisch generiertes Passwort zurück. |
Dieses Beispiel generiert zufällig ein Passwort aus einem Basiswort und Zahlen. Das Basiswort wird abhängig vom Anmeldeinformationsspeicher ausgewählt. Der Code wäre in enthalten Skript Feld eines Erweiterungsskripts mit dem Namen SamplePasswortgenerator :
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 Passwortzurücksetzung 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'} ;
Skripteinbindungskategorie „nach Zurücksetzung“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Nach Zurücksetzung | Führt zusätzliche Vorgänge nach Abschluss von aus PasswortzurücksetzungProzess. | Prozess (Parameter) | Parameter:
|
Gibt zurück: Ungültig |
In diesem Beispiel werden dem Systemprotokoll fehlgeschlagene Zurücksetzungsanforderungen hinzugefügt. Der Code wäre in enthalten Skript Feld für ein Erweiterungsskript mit dem Namen PwdPostprozessor“ :
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 Passwortzurücksetzung process has completed.
*
* @param params.resetRequestId The sys_id of the current Passwortzurücksetzung 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' }
Skripteinbindungskategorie „Anwenderaccount-Suche“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Anwenderaccount-Suche | Ruft die Account-ID des Anmeldeinformationsspeichers für einen bestimmten Anwender ab. | Prozess (Parameter) | Parameter: params.userId – Die sys_ID des überprüften Anwenders (Tabelle: sys_user). | Gibt: (Zeichenfolge) die Account-ID des Anmeldeinformationsspeichers für den angegebenen Anwender zurück. |
Dieses Beispiel ruft den Anmeldeinformationsspeicher-Account für einen Anwender ab. Dieser Code wäre in enthalten Skript Feld eines Erweiterungsskripts mit dem Namen 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' }
Skripteinbindungskategorie „Verifizierungsformularprozessor“
| Skripteinbindungskategorie | Beschreibung | Methodensignatur | Eingabefelder | Ausgabefelder |
|---|---|---|---|---|
| Verifizierungsformularprozessor | Verarbeitet eine Verifizierungsformularanforderung und gibt an, ob der Anwender verifiziert wurde oder nicht. | ProcessForm (Parameter, Anforderung) | Parameter:
|
Gibt zurück: (boolescher wert) wahr, wenn der Anwender verifiziert wurde; andernfalls falsch. |
Dieses Beispiel zeigt einen Verifizierungsprozessor, der nur „wahr“ zurückgibt, wenn der Anwender gesendet hat ok Im Eingabefeld; andernfalls wird „falsch“ zurückgegeben. Der Code wäre in enthalten Skript Feld eines Erweiterungsskripts mit dem Namen 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 Passwortzurücksetzung 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'};