Per ldap Nutzer modifizieren

Ich hänge hier an einer PaedML- Instanz und wollte mit meinem ldapuser, den ich zum Authentifizieren meiner Benutzer in anderen Diensten nutze, Benutzerattribute ändern. Das ging nicht, weil die Schreibrechte offenbar fehlen. Kann mir jemand sagen, wie man dennoch mit einem ldap-Nutzer Einträge ändern kann? An welcher Stelle kann ich diesem Nutzer diese Rechte einräumen?
Danke.

Nachtrag: Eigentlich will ich die Zugänge zu MS365 damit anpassen, da ich beim Nutzerimport alle Nutzer bis zur Einwilligungserklärung ausschließen möchte. Hinterher kann man ja über die Benutzerverwaltung alles nachtragen, aber das ist sehr mühsam und mit viel klicken verbunden. Das sollte per Script und ldap-Verbindung doch einfacher gehen.

Meine Lösung: Ich habe einen neuen Nutzer angelegt und ihn mit domain-admin Gruppenrechten ausgestattet. Wenn es da was besseres gibt, danke für weitere Hinweise.

Dann habe ich mit Hilfe der ldapts-Bibliothek (Typescript), meine Benutzer modifiziert:

const bindDN = `uid=${LDAPUSER},cn=users,dc=paedml-linux,dc=lokal`;
await client.bind(bindDN, LDAPPASS);
const changes = [
			new Change({ operation: 'add', modification: new Attribute({ type: 'univentionOffice365Enabled', values: ['1'] }) }),
			new Change({ operation: 'add', modification: new Attribute({ type: 'univentionOffice365ADConnectionAlias', values: ['defaultADconnection'] }) }),
		];
// hier muss man testen, ob die Objektklasse bereits gesetzt ist
if (!univentionOffice365)
	changes.unshift(new Change({ operation: 'add', modification: new Attribute({ type: 'objectClass', values: ['univentionOffice365'] }) }));
await client.modify(dn, changes);

Es reicht nun, wenn man den dn des Nutzers übergibt, dann wird so für MS365 freigeschaltet.

Moin,

ich würde davon abraten, Objekte auf LDAP-Ebene zu modifizieren. Gerade in UCS@school bringt die Library einiges an Fachlogik mit, welche bei Änderungen die Konsistenz der Daten garantiert, häufig ist es beispielsweise nicht nur ein Attribut, das angepasst werden muss oder konditional werden Sonderfälle behandelt, die man ohne weiteres nicht vor Augen hat.
Ohne mir das im Detail anzuschauen kann ich nicht bestätigen, dass die obige Änderung so gefahrlos möglich ist.

Alternativ stehen UDM auch auf Kommandozeilenebene per udm zur Verfügung oder wahlweise die Kelvin REST API für UCS@school bzw. die reine UDM REST API.

Gruß
Jan-Luca

Hey,

danke für den Tip, das kannte ich nicht. Wäre wahrscheinlich sogar einfacher gewesen. Werde in Zukunft diese Schnittstelle verwenden. Andererseits muss ich so nur den LDAP-Port öffnen und nicht auch noch eine weitere REST-Schnittstelle.

1 Like

ich habe jetzt das Script gefunden im Bugtracker connect_existing_users.py (7.6 KB) und wundere mich, warum es sich nicht wie die Benutzerverwaltung im ldap verhält. Wenn ich dort 365 aktiviere, dann wird automatisch auch ein Azure-Konto erstellt, während das Script auf beiden Seiten ein Konto erwartet. Gibts auch ein Script, was kein Konto bei Azure erwartet?

Moin,

ich fürchte ich kann gerade nicht ganz folgen, was genau erreicht werden soll. Das angehangene Skript erfüllt folgenden Zweck: A script to connect existing UCS users to existing Azure AD users, es geht also dezidiert darum, existierende Konten auf beiden Seiten zu erzeugen.
Was ist denn die Anforderung?

Gruß
Jan-Luca

Ich will von UCS aus die Konten auf Azure erzeugen. Das scheint zu funktionieren, wenn ich in LDAP die Häkchen setze, bzw. mein o.a. Script verwende und direkt in ldap reinschreibe. Nun habe ich das Script entdeckt und dachte mir, das kann es vielleicht besser und ist weniger fehleranfällig, aber es setzt Konten auf beiden Seiten voraus. Kann man die Funktionalität des Pythion Scripts so erweitern, dass es auch die Konten auf Azure anlegt, wenn nicht vorhanden? Diese Funktionalität scheint es ja irgendwie schon zu geben.

Also das beschriebene Skript ist dezidiert für den Use Case entwickelt worden, bestehende Konten zu verbinden (Referenz: Bug 48641 - Discover and connect existing Office365 users with ucs users). Ich gehe nicht davon aus, dass da eine generischere Anpassung in die beschriebene Richtung angedacht ist.
Sowas lässt sich natürlich beaufragen - Entweder bei einem Partner oder auch direkt bei uns.

Gruß
Jan-Luca

Mastodon