# Importation LDAP

Avec l'importation LDAP, vous pouvez copier les utilisateurs et groupes dans le système ELO depuis un Active Directory (AD).

Aperçu de la section 'Importation LDAP' dans la console d'administration ELO

  • Sélection du serveur : La console d'administration ELO essaie automatiquement de trouver des serveurs LDAP. Lorsque ce champ de sélection est vide, aucun serveur n'est trouvé dans le domaine. Par exemple, cela peut être le cas pour une connexion VPN.

  • Serveur: ici, est entré le serveur de connexion LDAP. Il est également possible d'entrer l'adresse IP, le port ou le protocole ici.

    BNF: Serveur ::=[ldap|ldaps]://[nom de serveur|adresse IP]:port

Remarque

Utilisez une connexion sécurisée, dans ce cas, LDAP via SSL (LDAPS).

  • Utilisateur de domaine et mot de passe : les données utilisateur se composent du nom et du mot de passe.

  • Ignorer la validation du certificat : le cas échéant, il est possible d'ignorer la validation du certificat.

  • DN de base et unité d'organisation LDAP : ces entrées permettent de sélectionner la branche correcte dans le répertoire LDAP.

  • Modèles et texte de filtres : certaines expressions de filtre LDAP sont indiquées dans la liste de sélection et se trouvent dans le texte de filtre pour un traitement libre.

  • Script de mappage : permet un traitement supplémentaire des données sous forme d'un code JavaScript.

    Vous trouverez de plus amples informations à ce sujet dans le prochain paragraphe Le script de mappage.

  • Réinitialiser le mappage : supprime le texte dans le champ de script de mappage.

  • Actualiser les utilisateurs ou groupes ayant déjà été créés : si le nom d'une entrée existant déjà peut être résolu, cette entrée ne peut être traitée que si la case est cochée.

    Remarque

    Les groupes LDAP sont seulement extraits et appliqués lors de l'authentification des utilisateurs.

  • Créer les groupes existants dans LDAP dans ELO : crée également les groupes qui n'existent pas encore dans ELO.

  • Exécuter la recherche : exécute la recherche et affiche les résultats.

  • Liste des résultats : affiche la liste des entrées à importer. Toutes les entrées valides sont sélectionnées. Si des données invalides ont été reconnues lors de la vérification, celles-ci ne seront pas sélectionnées et la remarque correspondante est affichée sous forme d'une infobulle.

# Le script de mappage

Il existe un mappage prédéfini d'attributs LDAP standards sur les attributs ELO. Il est possible d'ajouter un code JavaScript dans le champ d'entrée. Celui-ci est intégré dans un code et est exécuté pour chaque jeu de données de la recherche LDAP.

Le serveur d'indexation ELO a une structure de données pour les utilisateurs et groupes : l'objet UserInfo. Celui-ci est décrit dans la documentation développeurs du serveur d'indexation ELO. L'accès dans le script de mappage peut se faire par le biais du nom de variable elo.

# Mappage standard

  • elo.type
    • Selon LDAP ObjectClass=person
    • Si la classe existe déjà, un utilisateur est créé, sinon, c'est un groupe qui est créé.
  • elo.name
    • En fonction des attributs LDAP displayName, cn, sAMAccounName et distinguishedName
    • Le premier attribut LDAP fait office de nom.
  • elo.userProps[UserInfoC.PROP_NAME_OS]
  • La valeur de l'attribut LDAP sAMAccountName est prise en charge.
  • elo.userProps[UserInfoC.PROP_NAME_EMAIL]
    • La valeur de l'attribut LDAP mail est copiée.
  • elo.superiorId
    • L'attribut LDAP manager est évalué.
  • Lorsque l'attribut manager fait référence à un utilisateur ELO existant, son ID est entré en tant que supérieur.
  • elo.id
    • Si le nom se réfère à un utilisateur ELO valide, cet ID est entré comme ID ici. Sinon, -1 est utilisé pour un nouvel utilisateur.

# Cadre du code JavaScript

Dans le niveau de rapport debug, le script créé est disponible dans le fichier journal.

// rhino compatible modus on java 8 (nashorn)
load('nashorn:mozilla_compat.js')
// editable basic javascript mapping function Version 1.0
importPackage(Packages.de.elo.ix.client)
importClass(Packages.de.elo.ldap.LdapImportException)
function extractDN(v){
try{
var vv=v.substring(3,v.indexOf('=', 3))
return vv.substring(0,vv.lastIndexOf(','))
}
catch(e){}
}
function map(ixc, elo, ldap, userNames){
%% Ici, le texte de l'interface est disponible pour le champ Script de mappage. %%
}

Lorsque la console d'administration ELO est démarrée sous Java 8, alors le mode de compatibilité Rhino est intégré.

public interface LdapImportMapping {
  public void map( de.elo.ix.client.IXConnection ixc, de.elo.ix.client.UserInfo userInfo,
                   javax.naming.directory.Attributes attributes,
                   Map<String, de.elo.ix.client.UserName> userNames );
}

L'accès au cadre JavaScript se fait par le biais de Java Interface LdapImportMapping. Dans la map, le nom ELO est utilisé comme clé pour l'objet UserName (caractères minuscules).

# Exemples

  • Un jeu de données peut être exclu, en plaçant elo.id=0.
if (elo.name.startsWith('_')){
elo.id = 0
}
  • Etant donné qu'il est possible d'utiliser JavaScript Code, il est également possible de faire afficher des versions pouvant être testées par le biais du mécanisme du message d'erreur.
throw ldap.get('mail').getClass()

ou aussi

throw userNames['administrator'].id
  • Notre exemple montre comment exclure des élément en vérifiant l'attribut mail, et comment le nom d'affichage est utilisé pour les utilisateurs restants.
var emailRegex = /^[\w._-]+[+]?[\w._-]+@[\w.-]+\.[a-zA-Z]{2,6}$/
var lMail = ldap.get('mail')
if (lMail){
    lMail = lMail.get()
    if (emailRegex.test(lMail)){
         elo.name += ' ('+lMail.split('@').pop()+')'
         // e-mail valide -> ajuster le nom d'affichage.
    }
}else{
    elo.id=0
    // e-mail invalide -> uniquement
}
Dernière mise à jour: 14 juin 2024 à 13:23