Quelle anlegen, Verbindung testen, nach Zeitplan oder auf Knopfdruck abgleichen. Gelesen wird seitenweise mit searchPaginated, objectGUID kommt als Puffer und wird gemischt-endian zur GUID umsortiert. Wer im Verzeichnis verschwindet, wird hier inaktiv und nie geloescht. Drei Regeln verhindern, dass eine kaputte Eingabe wie "alle sind gegangen" aussieht: laesst sich kein einziger Eintrag zuordnen, wird niemand deaktiviert; uebersprungene Eintraege werden am dn erkannt und ausgenommen; eine von Hand angelegte Person wird uebernommen statt verdoppelt. Der Zeitplan laeuft ueber node-cron im selben Prozess, gestartet aus src/instrumentation.ts, und nimmt keine eigene Sperre - die liegt in der Datenbank, damit zwei Instanzen sich einig sind. Closes #16 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
111 lines
3.3 KiB
Plaintext
111 lines
3.3 KiB
Plaintext
# Fixture-Personen fuer den Verzeichnis-Abgleich (#016).
|
|
#
|
|
# Bewusst klein, aber mit jedem Fall, den der Abgleich unterscheiden muss:
|
|
#
|
|
# Maria Huber vollstaendig, mit Vorgesetztem und Umlaut im Namen
|
|
# Klaus Berger ihr Vorgesetzter, damit `manager` aufloesbar ist
|
|
# Joerg Weiss Nachname mit Eszett, Mail-Adresse mit Umlaut-Ersatz
|
|
# Alte Kraft userAccountControl 514 (Bit 2 = deaktiviert) -- der
|
|
# Standardfilter muss sie ausschliessen
|
|
# Ohne Kennung ein Konto ohne objectGUID; ohne stabile Kennung darf der
|
|
# Abgleich es nicht anlegen, aber auch nicht abbrechen
|
|
#
|
|
# objectGUID steht base64-kodiert (`::`), weil es im AD ein binaeres Attribut
|
|
# ist. Die erwarteten GUID-Zeichenketten stehen in tests/verzeichnis.test.ts.
|
|
#
|
|
# Achtung: osixia laeuft mit `sed -i` ueber jede Datei in diesem Verzeichnis, um
|
|
# Platzhalter wie {{ LDAP_BASE_DN }} zu ersetzen. Hier stehen deshalb keine
|
|
# Platzhalter -- dann schreibt sed dieselben Bytes zurueck und der Arbeitsbaum
|
|
# bleibt sauber.
|
|
|
|
dn: ou=Benutzer,dc=firma,dc=test
|
|
objectClass: organizationalUnit
|
|
ou: Benutzer
|
|
|
|
dn: ou=Buchhaltung,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: organizationalUnit
|
|
ou: Buchhaltung
|
|
|
|
dn: ou=Vertrieb,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: organizationalUnit
|
|
ou: Vertrieb
|
|
|
|
dn: ou=Geschaeftsfuehrung,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: organizationalUnit
|
|
ou: Geschaeftsfuehrung
|
|
|
|
dn: cn=Klaus Berger,ou=Geschaeftsfuehrung,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: inetOrgPerson
|
|
objectClass: user
|
|
cn: Klaus Berger
|
|
sn: Berger
|
|
givenName: Klaus
|
|
displayName: Berger, Klaus
|
|
mail: klaus.berger@firma.test
|
|
userPrincipalName: klaus.berger@firma.test
|
|
sAMAccountName: kberger
|
|
department: Geschaeftsfuehrung
|
|
title: Geschaeftsfuehrer
|
|
objectCategory: person
|
|
userAccountControl: 512
|
|
objectGUID:: nEA+HXqyyUux5vCiw9Tl9g==
|
|
|
|
dn: cn=Maria Huber,ou=Buchhaltung,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: inetOrgPerson
|
|
objectClass: user
|
|
cn: Maria Huber
|
|
sn: Huber
|
|
givenName: Maria
|
|
displayName:: SHViZXIsIE1hcmlh
|
|
mail: maria.huber@firma.test
|
|
userPrincipalName: maria.huber@firma.test
|
|
sAMAccountName: mhuber
|
|
department: Buchhaltung
|
|
title:: TGVpdGVyaW4gUmVjaG51bmdzcHLDvGZ1bmc=
|
|
objectCategory: person
|
|
userAccountControl: 512
|
|
manager: cn=Klaus Berger,ou=Geschaeftsfuehrung,ou=Benutzer,dc=firma,dc=test
|
|
objectGUID:: EEMHXzU8HUqDb6UPUV56NQ==
|
|
|
|
dn: cn=Joerg Weiss,ou=Vertrieb,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: inetOrgPerson
|
|
objectClass: user
|
|
cn: Joerg Weiss
|
|
sn:: V2Vpw58=
|
|
givenName:: SsO2cmc=
|
|
displayName:: V2Vpw58sIErDtnJn
|
|
mail: joerg.weiss@firma.test
|
|
userPrincipalName: joerg.weiss@firma.test
|
|
sAMAccountName: jweiss
|
|
department: Vertrieb
|
|
objectCategory: person
|
|
userAccountControl: 512
|
|
manager: cn=Klaus Berger,ou=Geschaeftsfuehrung,ou=Benutzer,dc=firma,dc=test
|
|
objectGUID:: AQIDBAUGBwgJCgsMDQ4PEA==
|
|
|
|
dn: cn=Alte Kraft,ou=Vertrieb,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: inetOrgPerson
|
|
objectClass: user
|
|
cn: Alte Kraft
|
|
sn: Kraft
|
|
givenName: Alte
|
|
displayName: Kraft, Alte
|
|
mail: alte.kraft@firma.test
|
|
userPrincipalName: alte.kraft@firma.test
|
|
sAMAccountName: akraft
|
|
department: Vertrieb
|
|
objectCategory: person
|
|
userAccountControl: 514
|
|
objectGUID:: /+7dzLuqmYh3ZlVEMyIRAA==
|
|
|
|
dn: cn=Ohne Kennung,ou=Vertrieb,ou=Benutzer,dc=firma,dc=test
|
|
objectClass: inetOrgPerson
|
|
objectClass: user
|
|
cn: Ohne Kennung
|
|
sn: Kennung
|
|
givenName: Ohne
|
|
displayName: Kennung, Ohne
|
|
sAMAccountName: okennung
|
|
objectCategory: person
|
|
userAccountControl: 512
|