LDAP-Skripting

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 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. Beispiel: 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 ausgeführt, wenn UserAccountControl Der Wert ändert und deaktiviert Anwenderaccounts, wenn dies der Fall ist Anwenderaccount-Steuerung Gibt einen deaktivierten AD-Account an.

    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 mit dem Namen Anwenderaccount-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 für AD-Anwender
      Business-Regelfeld Wert
      Name Deaktivieren Sie AD-Anwender
      Tabelle Anwender [sys_user]
      Wann vor
      Bedingung current.u_user_account_control.changes()

      Das Skriptfeld 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 mithilfe von LDAP-Filtereigenschaften nicht vollständig 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-OE befinden. Sie können dieses Skript verwenden, wenn Sie zu viele Anwender haben, die in die LDAP-Option der Ziel-OE 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 ist die 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 = "";
    }