Erweiterte Attribute verwenden

german

#1

Hi,

Ich versuche jetzt schon ein paar Stunden zwei erweiterte Attribute für User zu verwenden. Beide werden auf univentionFreeAttribute1 und 2 abgelegt.

Das anlegen hat soweit problemfrei geklappt, ich kann beide auch wunderbar in der UMC an den Benutzern verwalten. Frage ich aber das LDAP aus einem VBS oder mit LdapAdmin ab, werden die Attribute nicht mitgeliefert.

Vermutlich übersehe ich etwas total offensichtliches, also seit doch bitte so nett und reißt das Brett von meiner Stirn :wink:


#2

Hallo,

mit welchen Parametern fragen Sie denn das LDAP ab?
Hinweis: wenn Samba 4 installiert ist, horcht auf Port 389 ein AD-kompatibles LDAP, auf 7389 hingegen OpenLDAP.

Sie können testweise mal auf dem UCS mit

univention-ldapsearch uid=eintestnutzer

nachschauen, wie die gesuchten Attribute heissen.

Viele Grüße,
Dirk Ahrnke


#3

Danke für den Tip! Samba 4 ist installiert, aber der OpenLDAP liefert gar kein Objekt zurück für meine Anfrage - auf Port 389 hingegen wird der User geliefert, nur eben ohne die extended attributes.

Wenn ich univention-ldapsearch für einen der Testaccounts aufrufe sind die Attribute korrekt gelistet.

In VBS nutze ich für die Abfrage CN=testuid,CN=Users,DC=domainname,DC=intranet. Die sonstigen Attribute, displayName etc. werden auch geladen, aber eben nicht univentionFreeAttribute1/univentionFreeAttribute2. Fehlermeldung ist jedesmal “Die Verzeichniseigenschaft wurde nicht im Cache gefunden” wenn ich versuche darauf zuzugreifen. Habe versucht die Attribute mit GetInfoEx explizit vorher abzurufen, und dann mit Get() abzufragen aber auch dann kein Erfolg.

Ist mein erster “Roh-LDAP” Kontakt, sorry :slight_smile:


#4

Sorry für den Doppelpost, aber sehe keine Möglichkeit den vorherigen Beitrag zu bearbeiten.

Habe es jetzt hinbekommen. Das VBS verbindet jetzt zu dem OpenLDAP, mit expliziter Auth und da kommen dann auch die extended attributes zurück.

Beispielcode:

[code]Dim sCurUser, dso, objUser

sCurUser = CreateObject(“WScript.Network”).UserName
Set dso = GetObject(“LDAP:”)
Set objUser = dso.OpenDSObject(“LDAP://ucs.domain.intranet:7389/uid=” & sCurUser & “,cn=users,dc=domain,dc=intranet”, “uid=Administrator,cn=users,dc=domain,dc=intranet”, “password”, 0)

WScript.Echo "attr1: " & objUser.univentionFreeAttribute1
WScript.Echo "attr2: " & objUser.univentionFreeAttribute2[/code]

Aber wieso überhaupt 2 LDAP-Server? Und warum liegen die extended attrs nur im OpenLDAP scheinbar?


#5

Hallo,

die Microsoft-Welt erwartet für Acttive Directory auf Port 389 und 636 einen LDAP-Server der sich genau so verhält wie “das Original”. Dieses “Original” spricht das LDAP-Protokoll, benutzt aber teilweise andere Schema-Definitionen, Attribute und liefert wie z.B. beim Distiguished Name sogar Werte in abweichender Notation als z.B. ein OpenLDAP.
Mit der Einführung von Samba 4 musste der OpenLDAP-Server, der hier das eigentlich führende Verzeichnis bereitstellt, auf einen alternativen Port weichen. Keine der beiden LDAP-Implementierungen ist in der Lage, alle Funktionen das anderen komplett zu übernehmen.
Zwischen den beiden Welten gibt es eine Datenbrücke namens “S4-Connector”. Es werden per default nur die Attribute synchronisiert, die für das Funktionieren des AD nötig sind.
univentionFreeAttribute ist eine Schema-Erweiterung für das OpenLDAP. Theoretisch könnte man auch eine Schema-Erweiterung für AD bauen, aber im Vergleich zu OpenLDAP ist der Aufwand dafür ziemlich hoch.

Viele Grüße,
Dirk Ahrnke


#6

Ahaaa, jetzt ergibt es einen Sinn - Danke!