Scripting LDAP
Créez des cartes de transformation, des scripts et des règles métier personnalisés pour spécifier les exigences lors de l’importation de données.
Les cartes de transformation personnalisées doivent inclure des scripts de transformation onStart et onAfter .
onStart doit appeler le script include LDAPUtils et démarrer la journalisation. Par exemple, la carte de transformation Importation d’utilisateur LDAP a un script onStart qui utilise le code suivant :gs.include ( "LDAPUtils" ) ; var ldapUtils = new LDAPUtils ( ) ;
ldapUtils. setLog (log ) ;onAfter doit appeler la fonction addMembers Par exemple :ldapUtils.addMembers (source , target ) ;Définir les utilisateurs Active Directory désactivés sur inactifs
Utilisez le script suivant pour désactiver automatiquement les utilisateurs lorsque l’utilisateur AD associé est désactivé.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Vous pouvez identifier les utilisateurs Active Directory désactivés en vérifiant la valeur de l’attribut userAccountControl . Cette règle s’exécute chaque fois que la valeur userAccountControl change et désactive les comptes d’utilisateurs si le contrôle de compte d’utilisateur signifie un compte AD désactivé.
Utilisez le script suivant pour désactiver automatiquement les utilisateurs lorsque l’utilisateur AD associé est désactivé.
Procédure
Affecter des valeurs de champ LDAP
Vous pouvez utiliser un script pour affecter une valeur à n’importe quel champ pour lequel il existe un mappage de champ.
Par exemple, pour affecter une valeur au champ sys_user.company, créez une carte de champ pour le champ de société et ajoutez un script de transformation des types suivants :
company = "Don's Sporting Goods";Exclure certains utilisateurs LDAP
Si vous ne pouvez pas filtrer complètement la liste des utilisateurs LDAP à l’aide des propriétés de filtre LDAP, vous pouvez exclure des utilisateurs à l’aide d’un script de carte.
Une fois que vous avez exécuté la logique pour identifier un utilisateur qui ne doit pas être importé, définissez le champ user_name sur une chaîne vide et cet utilisateur ne sera pas importé.
user_name='';Une façon d’identifier les utilisateurs à filtrer consiste à rechercher une chaîne dans l’attribut distinguishedName . Par exemple, ce script exclut les comptes qui ne se trouvent pas dans une UO d’utilisateurs. Vous pouvez utiliser ce script si vous avez trop d’UO d’utilisateurs à inclure dans l’option LDAP d’UO cible.
//vdn is a variable mapped to distinguishedName
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
if (vdn.indexOf('OU=Users')<0) {
user_name='';
gs.log('LDAP Import Skipping User: ' + vdn);
}Une méthode de filtrage plus complexe consiste à utiliser des expressions régulières.
//vcn is a variable mapped to cn
//vdn is a variable mapped to distinguishedName
//c is the regular expression string
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
var vcn = source.getElement(this.cn);
var c = /^[a-z][a-z][a-z][0-9][0-9][0-9]$/;
var nvcn = vcn.toLowerCase();
//test to see if the cn is in the form of 3 letters followed by 3 numbers, only import these
if (c.test(nvcn)) {
user_name = nvcn;
} else {
gs.log("LDAP import rejected username: " + vcn + " for DN: " + vdn);
user_name = "";
}