Ce guide décrit en détail la procédure d'importation de groupes Active Directory (AD) existants dans Identum eADM. Cela permet à eADM de prendre en charge la gestion de ces groupes sans avoir à les supprimer ni à les recréer. La procédure consiste à exporter les données des groupes au format CSV, à configurer des modèles de synchronisation, puis à importer ces données dans eADM.
Conditions préalables
-
Accès administratif au contrôleur de domaine Active Directory.
-
Accès administratif au tenant eADM.
-
PowerShell doit être installé sur le serveur à partir duquel l'exportation sera effectuée.
Étape 1 : Exporter les groupes Active Directory au format CSV
Pour importer des groupes, vous devez d'abord générer un fichier CSV formaté contenant les données relatives à ces groupes. Nous utilisons un script PowerShell pour extraire les informations nécessaires d'Active Directory.
-
Ouvrez PowerShell ISE ou un éditeur de texte sur un ordinateur sur lequel les modules Active Directory sont installés.
-
Copiez le script ci-dessous.
-
Important : mettez à jour les variables dans les sections « Configuration générale », « Valeurs système » et « Groupes / Unités organisationnelles » afin qu'elles correspondent à votre environnement.
-
Assurez-vous que la variable
$exportmembersest défini sur"false"pour ce scénario d'importation spécifique.
PowerShell
<#
Description: Exports AD groups to CSV for eADM import.
Usage: Update variables in the "Setup" section before running.
#>
#------ General Setup ------
$customer = "utfjord" # Short customer name, used in file extensions.
$eadm_path = "C:\eadm" # Path to eAdm installation.
$outputfolder = "C:\eadm\tmp\groupexport" # Output directory. Folder must exist.
$exportmembers = "false" # Set to "false" for initial group import.
# ------ System Values ------
$domaincontroller = "DC01" # Name of the DC used for extraction.
$domain = "domain.local"
$mergeAttribute = "employeeNumber" # Unique user attribute (e.g., samaccountName or employeeNumber).
$sourceId = "objectGuid" # Source ID type (objectGuid or samaccountName).
#------ Groups / OUs ------
# Define OUs to export. Add specific OUs to the array below.
$groupOUs = @()
# Add an object for each OU
$groupOUs += @{
DN = "OU=Grupper,OU=Resurser,DC=utfjord,DC=local" # Full DN of the OU.
alias = "Felles" # Short name for the OU (used in filenames).
scope = "SubTree" # Search scope: "SubTree" or "OneLevel".
synctemplateid = "ImportedGroups" # ID of the sync template.
}
#------ Members ------
$userSearchBase = "OU=Brukere,DC=utfjord,DC=local" # Parent OU for member fetch.
<#
Limit user selection to specific OUs if necessary.
Set equal to $userSearchbase if no limitations are needed.
#>
$userOUs = @(
"OU=Brukere,DC=utfjord,DC=local"
)
# // End of Setup
#------ Export Logic ------
# Create Regex for User OU validation
$regex = ""
$userOUs | ForEach-Object { $regex += ".*," + [Regex]::Escape($_) + "$|" }
$regex = $regex.Substring(0,$regex.Length-1)
foreach ($ou in $groupOUs) {
Write-Host "Fetching groups for OU $($ou.DN)"
$groups = Get-ADGroup -filter '*' -searchbase "$($ou.DN)" -searchscope "$($ou.scope)" -properties name,samaccountname,description,ManagedBy,mailnickname,grouptype,groupscope,GroupCategory,Mail,distinguishedName,ObjectGuid
Write-Host "Writing group list to file for OU $($ou.DN) --> $($outputfolder)"
$groups | Select-Object @{Label="name";Expression = {("$($_.samaccountname)")}},`
@{Label="displayname";Expression = {("$($_.name)")}},`
@{Label="sourceid";Expression = {("$($_.$($sourceid))")}},`
mail,description,`
@{Label="GroupType";Expression = {("$($_.groupScope)$($_.GroupCategory)")}},`
@{n='parentPath';e={$_.DistinguishedName -replace '^.*?,(?=[A-Z]{2}=)'}},`
@{Label="groupScope";Expression = {("OnPremAD")}},`
@{Label="ImportedAnchor";Expression = {($_.objectguid)}},`
@{Label="parent";Expression = {($ou.synctemplateid)}} |
ConvertTo-Csv -NoTypeInformation -Delimiter ";" |
ForEach-Object { $_ -replace '"' } |
Out-file -Encoding utf8 -filepath "$($outputfolder)\groups-$($ou.alias).csv"
# Member export logic (Skipped if $exportmembers is false)
if($exportmembers -eq "true") {
foreach ($group in $groups) {
Write-Host "Fetching and writing members to file for group $($group.samaccountname) --> $($outputfolder)"
(Get-ADGroupMember -identity $group.samaccountname -Recursive |
Where-Object {$_.objectClass -eq "user"} |
Get-ADUser -Properties $($mergeattribute) |
Where-Object { $_.DistinguishedName -match $regex -and $_.enabled -eq $True -and $($mergeattribute) -like "*"} |
ForEach-Object { $_.$($mergeattribute) }) -join "," |
Out-file -filepath "$($outputfolder)\members-$($group.samaccountname)_$($customer).csv" -Encoding UTF8
}
}
}
Étape 2 : Mettre à jour les règles de synchronisation existantes
Avant d'importer les nouveaux groupes, vous devez vous assurer que vos modèles de synchronisation de groupes existants ne tentent pas de réexporter ces groupes vers AD, ce qui entraînerait des doublons ou des erreurs.
-
Passez en revue tous les modèles de synchronisation de groupe actifs.
-
Identifiez l'ensemble de règles associé à chaque modèle.
-
Ajouter une règle à exclure groupes dans lesquels le
Parentattribut égal àImportedGroups.
Avertissement: si vous ne suivez pas cette étape, cela peut entraîner la duplication de groupes dans Active Directory.
Étape 3 : Configurer le modèle de synchronisation d'importation
Vous devez disposer d'un modèle de synchronisation spécifique dans eADM pour gérer les groupes importés. Vous pouvez soit copier un modèle prédéfini, soit en créer un manuellement.
Option A : Copier à partir des modèles du tenant
Si vous avez accès au tenant « Templates », copiez le modèle nommé AD: Imported groups (sourceid = objectguid). L'ensemble de règles AD: Imported groups from OnPremAD objectguid seront également copiés.
Option B : Configuration manuelle
Si vous ne parvenez pas à copier le modèle, créez-en un nouveau en utilisant les paramètres suivants :
Paramètres du modèle :
-
Nom :
AD: Imported groups (sourceid = objectguid) -
Actif : Oui
-
Type d'objet : Groupe
-
Étape de synchronisation : exportation d'AD
-
Chemin d'accès à l'objet :
[IFEMPTYUSE;[ExtensionAttribute2];OU=Groups DC=domain DC=local]-
Remarque : remplacez le DN ci-dessus par votre unité d'organisation (OU) de groupe par défaut.
-
Attributs d'exportation :
|
Source |
Cible |
Cible vide |
Clé étrangère |
|
|
description |
Non |
|
|
|
cn |
Non |
|
|
|
samAccountName |
Non |
|
|
|
Type de groupe |
Non |
|
|
|
extensionAttribute1 |
Non |
|
|
|
géré par |
Non |
User.Manager |
|
|
nom d'affichage |
Non |
|
|
|
extensionAttribute3 |
Non |
|
|
|
extensionAttribute4 |
Non |
|
Configuration des règles :
Créez un ensemble de règles intitulé « AD : groupes importés depuis OnPremAD » et associez-le au modèle.
-
Attribut : Parent
-
Terme : est égal à l'un des éléments suivants :
-
Argument :
ManualGroupWizard,ImportedGroups
Étape 4 : Importer un fichier CSV dans eADM
Une fois les fichiers CSV générés et les modèles configurés, procédez à l'importation.
-
Connectez-vous à eADM.
-
Accédez à la rubrique « Groupes » dans la barre latérale.
-
Sélectionnez les données source pour les groupes créés manuellement.
-
Lancez l'assistant de mise en ligne des groupes manuels.
-
Importez le ou les fichiers CSV générés à l'étape 1.
-
Remarque : les correspondances de colonnes correctes seront détectées automatiquement.
-
-
Suivez les étapes de l'assistant pour terminer l'importation.
Résultat : lors du prochain cycle de synchronisation, un lien sera établi entre les objets eADM et les groupes AD existants via leur objectGuid. Vous pouvez désormais gérer ces groupes à l'aide d'eADM.
4. Synthèse sur l'IA et la recherche
Ce document fournit des instructions pour importer des groupes Active Directory existants dans Identum eADM à des fins de gestion. Il décrit la procédure à suivre pour exécuter un script PowerShell permettant d’exporter des groupes AD au format CSV, modifier les règles de synchronisation existantes afin d’éviter les doublons, configurer un modèle de synchronisation dédié intitulé « Groupes importés » et utiliser l’« Assistant de chargement des groupes manuels » dans eADM. Cette procédure établit un lien permanent (ancrage) entre eADM et AD sans supprimer les données existantes.