M
Membre supprimé 17520
Invité
Bonjour, je suis actuellement stagiaire et je dois mettre en place une authentification LDAP sur différent service dont un NAS Synology.
Mon environnement est le suivant :


Ce que j'ai fais :
structuralObjectClass,objectClass,sn,cn,gidNumber,homeDirectory,uid,uidNumber
inetOrgPerson,posixAccount,testldap,testldap,100,/var/services/home/testldap,testldap,1028
Le script (powershell) :
Le Problème : Quand je souhaite me connecter au NAS avec testldap@lab.local (donc un utilisateur de l'annuaire), il m'est dit que le mot de passe est erroné.
Mon environnement est le suivant :
- un réseau en 192.168.0.X/24
- un serveur NAS Synology DS923+
- une machine virtuelle ubuntu 24.04 LTS avec un serveur LDAP


Ce que j'ai fais :
- j'ai exporté la liste des utilisateurs local de mon synology
- j'ai modifié le fichier csv pour le structurer de façon à la transformer en fichier ldif
- j'ai un script qui convertit les données du fichier csv en un fichier ldif
- puis j'exporte le fichier ldif dans mon annuaire
structuralObjectClass,objectClass,sn,cn,gidNumber,homeDirectory,uid,uidNumber
inetOrgPerson,posixAccount,testldap,testldap,100,/var/services/home/testldap,testldap,1028
Le script (powershell) :
Code:
# Fonction pour hacher les mots de passe avec SHA-256 et encoder en base64
function Hash-Password {
param (
[string]$password
)
$sha256 = [System.Security.Cryptography.SHA256]::Create()
$hashBytes = $sha256.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($password))
return [System.Convert]::ToBase64String($hashBytes)
}
# Fonction pour convertir CSV en LDIF
function Convert-CsvToLdif {
param (
[string]$csvPath,
[string]$ldifPath
)
$csvData = Import-Csv -Path $csvPath
$ldifContent = ""
foreach ($row in $csvData) {
# Ajout d'un mot de passe par défaut pour le hachage
$defaultPassword = "1234"
$hashedPassword = Hash-Password -password $defaultPassword
$ldifContent += "dn: cn=$($row.cn),ou=People,dc=lab,dc=local`n"
$ldifContent += "objectClass: $($row.structuralObjectClass)`n"
$ldifContent += "objectClass: $($row.objectClass)`n"
$ldifContent += "sn: $($row.sn)`n"
$ldifContent += "cn: $($row.cn)`n"
$ldifContent += "gidNumber: $($row.gidNumber)`n"
$ldifContent += "homeDirectory: $($row.homeDirectory)`n"
$ldifContent += "uid: $($row.uid)`n"
$ldifContent += "uidNumber: $($row.uidNumber)`n"
$ldifContent += "userPassword: $hashedPassword`n"
$ldifContent += "`n"
}
Set-Content -Path $ldifPath -Value $ldifContent
}
# Chemins vers le fichier CSV et le fichier LDIF
$csvPath = "C:\Users\Administrateur\Documents\projet ldap\user.csv"
$ldifPath = "C:\Users\Administrateur\Documents\projet ldap\user.ldif"
# Conversion du CSV en LDIF
Convert-CsvToLdif -csvPath $csvPath -ldifPath $ldifPath
Le Problème : Quand je souhaite me connecter au NAS avec testldap@lab.local (donc un utilisateur de l'annuaire), il m'est dit que le mot de passe est erroné.
Dernière édition par un modérateur: