LDAP-Skripting

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Erstellen Sie anwenderdefinierte Transformationszuordnungen, Skripts und Business-Regeln, um Anforderungen beim Importieren von Daten anzugeben.

    Anwenderdefinierte Transformationszuordnungen sollten enthalten Beim Start Und OnAfter Transformationsskripts.

    Die Beim Start Das Skript muss aufrufen LDAPUtils Skripteinbindung und Protokollierung starten. Zum Beispiel die LDAP-Anwenderimport Transformationszuordnung hat einen Beim Start Skript, das diesen Code verwendet:
    gs.include ( "LDAPUtils" ) ; var ldapUtils  = new LDAPUtils ( ) ;
    ldapUtils. setLog (log ) ;
    Die OnAfter Das Skript muss aufrufen AddMembers Funktion. Zum Beispiel:
    ldapUtils.addMembers (source , target ) ;

    Legen Sie deaktivierte Active Directory-Anwender auf inaktiv fest

    Verwenden Sie das folgende Skript, um Anwender automatisch zu deaktivieren, wenn der zugehörige AD-Anwender deaktiviert ist.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Sie können deaktivierte Active Directory-Anwender identifizieren, indem Sie den Wert von überprüfen UserAccountControl Attribut. Diese Regel wird immer ausgeführt, wenn UserAccountControl Der Wert ändert und deaktiviert Anwenderaccounts, wenn dies der Fall ist Anwender-Account-Steuerung Kennzeichnet einen deaktivierten AD-Account.

    Verwenden Sie das folgende Skript, um Anwender automatisch zu deaktivieren, wenn der zugehörige AD-Anwender deaktiviert ist.

    Prozedur

    1. Konfigurieren Sie das Anwenderformular, und erstellen Sie ein neues Ganzzahlfeld namens Anwender-Account-Steuerung .
    2. Fügen Sie dem neuen Feld eine Zuordnung für userAccountControl (extern) hinzu.
    3. Erstellen Sie eine neue Business-Regel mit den folgenden Eigenschaften:
      Tabelle : 1. Deaktivieren Sie die Business-Regel „AD-Anwender“
      Business-Regel-Feld Wert
      Name Deaktivieren Sie AD-Anwender
      Tabelle Benutzer [sys_user]
      Wann Vor
      Bedingung current.u_user_account_control.changes()

      Das Feld Skript muss Folgendes enthalten:

      var disabledFlag = 2;
      //perform a bitwise comparison on userAccountControl to see if the 2 bit flag is enabled
      if (current.u_user_account_control & disabledFlag) {
        gs.log('Disabling user: ' + current.user_name + 'userAccountControl=' + current.u_user_account_control);
        current.active='false';
        current.locked_out='true';
      }

    Weisen Sie LDAP-Feldwerte zu

    Sie können ein Skript verwenden, um jedem Feld, für das eine Feldzuordnung vorhanden ist, einen Wert zuzuweisen.

    Um beispielsweise dem Feld sys_user.company einen Wert zuzuweisen, erstellen Sie eine Feldzuordnung für das Feld „Unternehmen“, und fügen Sie ein Transformationsskript hinzu:

    company = "Don's Sporting Goods";

    Schließen Sie bestimmte LDAP-Anwender aus

    Wenn Sie die LDAP-Anwenderliste nicht vollständig mithilfe von LDAP-Filtereigenschaften filtern können, können Sie Anwender mit einem Zuordnungsskript ausschließen.

    Nachdem Sie die Logik ausgeführt haben, um einen Anwender zu identifizieren, der nicht importiert werden soll, legen Sie das Feld user_Name auf eine leere Zeichenfolge fest, und dieser Anwender wird nicht importiert.

    user_name='';

    Eine Möglichkeit, Anwender zu identifizieren, die herausgefiltert werden sollen, besteht darin, nach einer Zeichenfolge in zu suchen DistinguishedName Attribut. Dieses Skript schließt beispielsweise Accounts aus, die sich nicht in einer Anwender-OU befinden. Sie können dieses Skript verwenden, wenn Sie zu viele Anwender-OE haben, die in die LDAP-Option der Ziel-OU aufgenommen werden können.

    //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);
    }

    Eine komplexere Methode zum Filtern besteht in der Verwendung regulärer Ausdrücke.

    //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 = "";
    }