Start · Sprachen · PHP · Referenz · ldap_dn2ufn

ldap_dn2ufn

Funktion

Konvertiert einen LDAP-Distinguished-Name (DN) in ein benutzerfreundliches Namensformat (User Friendly Name, UFN).

seit PHP 4.0.0 Kategorie: misc

Signatur

ldap_dn2ufn(string $dn): string|false

Beschreibung

ldap_dn2ufn wandelt einen LDAP-Distinguished-Name (DN) in ein sogenanntes User Friendly Name-Format (UFN) um, das für Menschen leichter lesbar ist. Dabei werden die Attributbezeichner (z. B. cn=, dc=, ou=) entfernt und die einzelnen Komponenten durch Kommas getrennt zusammengefügt.

Ein DN wie cn=Max Mustermann,ou=Mitarbeiter,dc=example,dc=com wird beispielsweise zu Max Mustermann, Mitarbeiter, example, com. Dieses Format eignet sich gut für die Anzeige in Benutzeroberflächen, bei denen ein vollständiger technischer DN für den Endnutzer unübersichtlich wäre.

Die Funktion ist nützlich, wenn LDAP-Verzeichniseinträge in einer für Endbenutzer verständlichen Form präsentiert werden sollen, z. B. in Adressbüchern, Benutzerauswahllisten oder Protokollen. Sie sollte jedoch nicht für sicherheitskritische Vergleiche oder Verarbeitungen verwendet werden, da das UFN-Format mehrdeutig sein kann.

Parameter

Name Typ Default Beschreibung
$dn Pflicht string Der LDAP-Distinguished-Name (DN), der in ein benutzerfreundliches Format umgewandelt werden soll, z. B. cn=Max Mustermann,ou=Mitarbeiter,dc=example,dc=com.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den umgewandelten, benutzerfreundlichen Namen als Zeichenkette zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Einfache DN-Umwandlung in UFN

<?php
$dn = 'cn=Max Mustermann,ou=Mitarbeiter,dc=example,dc=com';
$ufn = ldap_dn2ufn($dn);

if ($ufn !== false) {
    echo "UFN: " . $ufn . PHP_EOL;
} else {
    echo "Fehler bei der Umwandlung." . PHP_EOL;
}
?>
UFN: Max Mustermann, Mitarbeiter, example, com

UFN-Anzeige nach LDAP-Suche

<?php
$ldap = ldap_connect('ldap://ldap.example.com');
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind($ldap, 'cn=admin,dc=example,dc=com', 'geheim');

$result = ldap_search($ldap, 'dc=example,dc=com', '(objectClass=person)', ['dn', 'cn']);
$entries = ldap_get_entries($ldap, $result);

foreach ($entries as $entry) {
    if (isset($entry['dn'])) {
        $ufn = ldap_dn2ufn($entry['dn']);
        echo "Benutzer: " . $ufn . PHP_EOL;
    }
}

ldap_unbind($ldap);
?>
Benutzer: Max Mustermann, Mitarbeiter, example, com Benutzer: Erika Musterfrau, Mitarbeiter, example, com

// Wichtig · Fallstricke

Mehrdeutigkeit: Das UFN-Format ist nicht umkehrbar eindeutig – aus einem UFN kann nicht zuverlässig der ursprüngliche DN rekonstruiert werden. Verwenden Sie für programmatische Verarbeitung oder Vergleiche stets den originalen DN.

Nur zur Anzeige: ldap_dn2ufn ist ausschließlich für die Präsentation gegenüber Endbenutzern gedacht. Für sicherheitskritische Operationen wie Authentifizierung oder Zugriffssteuerung sollte immer der vollständige, kanonische DN genutzt werden.

Die LDAP-Erweiterung muss in PHP aktiviert sein (Kompilierung mit --with-ldap oder entsprechende Erweiterung in php.ini aktivieren).