How do I change a user's password via LDAP integration with active directory?

oscar morelli
Tera Contributor

Hi,

searching via GlideLDAP works fine.

 

Now I would like to reset the password for this user, how can I do it?

 

var gr = new GlideRecord('ldap_server_config');

var ldap_id = '1ae0a9d020b9a5100eed0c8b78e8cdd7';
gr.get(ldap_id);
var ldap = new GlideLDAP();
ldap.setConfigID(ldap_id);
var env = ldap.setup();

if (env == null) {
gs.addErrorMessage("Environment not set, missing server URL");
}
var ldapConnectionTester = new GlideLDAPTestConnectionProcessor(ldap_id, null);

try {
var connessione = ldapConnectionTester.testConnection();
gs.print('connessione instaurata: ' + connessione);

 

var query = '(sAMAccountName=testuser1)';

var result= ldap.getMatching('', query, true, 1);

if(!JSUtil.nil(result)){
while(test = result.next()){
var strResult = test.toString();
var mail = strResult.split('mail=')[1];
mail = mail.split(',')[0];

var dn = strResult.split('dn=')[1];
dn = dn.split(',')[0];

gs.print(mail);
gs.print(dn);

var ldapUserUpdate = new GlideLDAPUserUpdate();
ldapUserUpdate.setDN(dn);
ldapUserUpdate.setAttribute('password', 'newpassword'); // Imposta il nuovo cognome dell'utente
ldap.update(ldapUserUpdate);
}
}

}catch(e) {

gs.addErrorMessage(e.getMessage());
}

6 REPLIES 6

Hi @oscar morelli ,

 

make sure you replaced "myldapserver" with the name of your LDAP server as defined in your instance. Also, replace "testuser1" and "newpassword" with the username and new password you want to set, respectively.

 

Thanks,

Ratnakar

Hi @Ratnakar7,

i'm sure, I entered some print to verify.

 

var userName = 'testuser1';
var newPassword = 'TestPassword.1';
var ldap = new GlideLDAP();
var ldapConfig = new GlideRecord('ldap_server_config');
ldapConfig.addQuery('name', 'Active Directory OCR'); // replace with your LDAP server name
ldapConfig.query();
if (ldapConfig.next()) {
   gs.print('name: ' + ldapConfig.name);
   ldap.setConfigID(ldapConfig.sys_id);
   var user = ldap.getUser(userName);
   gs.print('user: ' + user);
   user.setAttribute('unicodePwd', newPassword);
   ldap.update(user);
}

 

*** Script: name: Active Directory OCR 
*** Script: user: undefined