LDAP-Skripterstellung

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Erstellen Sie benutzerdefinierte Transformationszuordnungen, Skripts und Geschäftsregeln, um die Anforderungen beim Importieren von Daten anzugeben.

    Benutzerdefinierte Transformationszuordnungen müssen die Transformationsskripts onStart und onAfter enthalten.

    Das Skript onStart sollte die Skripteinbindung LDAPUtils aufrufen und mit der Protokollierung beginnen. Zum Beispiel verfügt die Transformationszuordnung für LDAP-Benutzerimport über ein onStart -Skript, das den folgenden Code verwendet:
    gs.include ( "LDAPUtils" ) ; var ldapUtils  = new LDAPUtils ( ) ;
    ldapUtils. setLog (log ) ;
    Das onAfter- Skript sollte die addMembers- Funktion aufrufen. Beispiel:
    ldapUtils.addMembers (source , target ) ;

    Legen Sie deaktivierte Active Directory-Benutzer auf inaktiv fest

    Verwenden Sie das folgende Skript, um Benutzer automatisch zu deaktivieren, wenn der zugeordnete AD-Benutzer deaktiviert wird.

    Vorbereitungen

    Erforderliche Rolle: admin

    Warum und wann dieser Vorgang ausgeführt wird

    Sie können deaktivierte Active Directory-Benutzer identifizieren, indem Sie den Wert des Attributs userAccountControl überprüfen. Diese Regel wird immer dann ausgeführt, wenn sich der Wert userAccountControl ändert, und deaktiviert Benutzerkonten, wenn die Benutzerkontensteuerung einen deaktivierten AD-Account anzeigt.

    Verwenden Sie das folgende Skript, um Benutzer automatisch zu deaktivieren, wenn der zugeordnete AD-Benutzer deaktiviert wird.

    Prozedur

    1. Konfigurieren Sie das Benutzerformular, und erstellen Sie ein neues Ganzzahlfeld mit der Bezeichnung Benutzerkontensteuerung.
    2. Fügen Sie dem neuen Feld eine Zuordnung für userAccountControl (extern) hinzu.
    3. Erstellen Sie eine neue Geschäftsregel mit den folgenden Eigenschaften:
      Tabelle : 1. Deaktivieren Sie die Geschäftsregel „AD-Benutzer“.
      Feld „Business Rule“ Wert
      Name Deaktivieren Sie AD-Anwender
      Tabelle Benutzer [sys_user]
      Wenn 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 das folgende Transformationsskript hinzu:

    company = "Don's Sporting Goods";

    Schließen Sie bestimmte LDAP-Benutzer aus

    Wenn Sie die LDAP-Benutzerliste mithilfe der LDAP-Filtereigenschaften nicht vollständig filtern können, können Sie Benutzer mit einem Zuordnungsskript ausschließen.

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

    user_name='';

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

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