Synology Authentification Synology via OpenLDAP

Thomas.RDRK

Nouveau membre
24 Mai 2024
9
1
3
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 :
  • 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
Mon NAS est bien joint à l'annuaire et la liste d'utilisateur et de groupe de mon annuaire est présent
capture3.PNGCapture2.PNG



Ce que j'ai fais :
  1. j'ai exporté la liste des utilisateurs local de mon synology
  2. j'ai modifié le fichier csv pour le structurer de façon à la transformer en fichier ldif
  3. j'ai un script qui convertit les données du fichier csv en un fichier ldif
  4. puis j'exporte le fichier ldif dans mon annuaire
Structure de mon fichier csv :
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:
UPDATE : le problème précédent a été résolu.

Mais je me retrouve avec un résultat qui n'est pas celui attendu.
Si je souhaite me connecter avec un utilisateur local qui a été renseigner sur l'annuaire. Exemple : user@domain.lan. La connexion est correcte mais je me retrouve avec un utilisateur différent de celui localement.