\section{Besondere Konfigurations-Einstellungen}

In diesem Kapitel werden werden einige weiterführende
Konfigurationsschritte besprochen, z.B. der Betrieb des AD Connectors
mit einem Nicht-Administrator-Benutzer.

\subsection{Einrichtung mit einem abweichenden Active Directory-Benutzer}
\label{ad-connector:active-directory-benutzer}
Neben dem von Haus aus im Active Directoy ausreichend priviligierten
Benutzer \ucsName{Administrator} können auch andere Benutzerkonten für den
Passwort-Dienst oder den LDAP-Zugriff verwendet werden. Dazu müssen
diesen Benutzern ausreichende Berechtigungen zugeordnet werden.

Die Konfiguration in diesem Dokument wird exemplarisch am
Benutzerkonto \ucsName{Administrator} durchgeführt, das im Normalfall
ausreichende Berechtigungen für den Einsatz des AD-Connectors
besitzt. Sind die Berechtigungen jedoch zu umfassend weil z.B. nur
eine unidirektionale Synchronisation erfolgen soll, können für den
Zugriff auf das LDAP-Verzeichnis oder den Betrieb des Passwort-Dienstes
abweichende Konten als ``Replikationsbenutzer'' angelegt werden.

\subsubsection{Benutzerkonto für LDAP Replikation}
\label{ad-connector:benutzer-ldap-replikation}
In der Standardkonfiguration eines Active Directory-Verzeichnisses auf
Basis von Windows 2003 verfügt jeder authentifizierte Benutzer über
ausreichende Leseberechtigung für die Verwendung des AD-Connectors.
Es können Container und Organisationseinheiten sowie alle Benutzer und
Gruppen gelesen werden. Schreibberechtigung, die für den Abgleich von
UCS-Konten mit AD notwendig sind, haben nur Mitglieder der Gruppe
\ucsName{Administratoren}.

In der erweiterten Ansicht des MMC-Plugins \ucsMenuEntry{Active-Directory
  Benutzer und Computer} können die Berechtigungen für einen
Replikationsbenutzer über die Eigenschaften von
Organisationseinheiten vergeben werden, entzieht man einem zur
Replikation angelegten Account die Berechtigungen auf eine
Organisationseinheit werden die darunterliegenden Benutzer und Gruppen
nicht mehr nach UCS synchronisiert.

Sind solche eingeschränkten Leserechte definiert, können ``rejects''
entstehen, wenn nicht alle Bedingungen an Benutzer und Gruppen für die
Synchronisation erfüllt werden können. Ein typischer Grund ist eine
Primäre Gruppe in einem für den Connector nicht mehr lesbaren
Container. Wird beispielsweise der Lesezugriff auf den
Standard"=Gruppencontainer unterbunden, können AD-Benutzer mit der dort
liegenden primären Gruppe ``Domänen"=Benutzer'' nicht mehr in UCS
angelegt werden. Es sollte dann eine andere primäre Gruppe in AD
zugeordnet oder die Gruppe verschoben werden.

Um unnötige ``rejects'' zu vermeiden, sollten im UCS-Mapping
entsprechende Einschränkungen definiert werden, damit der Connector
nicht versucht, Bereiche zum AD zu synchronisieren, in die er keinen
Schreibzugriff hat. 
Soll z.B. ein rein lesender Zugriff auf AD erfolgen, so reicht es aus
durch Setzen des \ucsCommand{sync\_mode} auf \ucsCommand{read} einen
lesenden Zugriff zu konfigurieren. (siehe Kapitel~\ref{ad-connector:mapping-einstellungen}).

\subsubsection{Benutzerkonto für den Passwort-Dienst}
Der Passwort Dienst, auf den der AD-Connector zugreift, benötigt für
den lesenden Zugriff auf die SAM-Datenbank deutlich mehr Privilegien
als ein Standardbenutzer. Wird für den LDAP-Zugriff auf das AD ein
abweichender Benutzer mit deutlich eingeschränkten Rechten verwendet,
kann dieser nicht ebenfalls für den Betrieb des Passwort Dienstes
eingesetzt werden.

Nach der Installation wird der Passwort Dienst als lokaler
Systemdienst gestartet und ist zunächst keinem Benutzerkonto zugeordnet.
Soll ihm ein eigener Benutzer zugeordnet werden, kann das dazu
angelegte Benutzerkonto in die Gruppe der Administratoren aufgenommen
werden, um alle benötigten Privilegien zu erhalten. Zusätzlich muss er
lesend Zugriff auf das Installationsverzeichnis \ucsCommand{C:\BS Windows\BS
  UCS-AD-Connector} und schreibend Zugriff auf die darin liegenden
Dateien \ucsCommand{copypwd.txt} und \ucsCommand{copypwd.in.txt} sowie
die Logdatei haben.

Manuelles Starten des Dienstes ist für einen abweichenden Benutzer
möglich, wenn er in den lokalen Sicherheitsrichtlinien die
Berechtigung zur lokalen Anmeldung und das Debugging von Programmen
erhält. Leider werden diese Berechtigungen nicht in ausreichender Form
angewandt, wenn das Programm automatisch als Dienst gestartet wird.

\subsection{Installation des Passwort-Dienstes in einem abweichenden Pfad}

Soll der Passwort-Dienst in einem anderen Verzeichnis als der
Installationsvorgabe installiert werden, so kann dieser nachträglich
in ein anderes Verzeichnis kopiert werden. Zunächst sollte der Dienst
gestoppt und dann entfernt werden. Dazu können in der
Windows-Eingabeaufforderung die folgenden Kommandos eingegeben werden:

\begin{ucsConsoleInput}
C:\Windows\UCS-AD-Connector\ucs-ad-connector.exe -stop
C:\Windows\UCS-AD-Connector\ucs-ad-connector.exe -remove
\end{ucsConsoleInput}

Anschließend kann das UCS-AD-Connector Verzeichnis verschoben werden und der Dienst neu initialisiert werden.

\begin{ucsConsoleInput}
C:\AD\UCS-AD-Connector\ucs-ad-connector.exe -install
C:\AD\UCS-AD-Connector\ucs-ad-connector.exe -start
\end{ucsConsoleInput}

\subsection{Synchronisation mehrerer AD-Domänen mit einem UCS-Verzeichnisdienst}
Es besteht die Möglichkeit mehrere getrennte Active Directory-Domänen
in eine gemeinsame UCS-Domäne zu synchronisieren. Damit können
beispielsweise mehrere Domänen eines Forests synchronisiert werden.
Pro AD-Domäne kann eine OU (Organisational Unit) im LDAP definiert
werden, unter der die Objekte der jeweiligen Domäne synchronisiert
werden.

Für die mehrfache Replikation werden mehrere Connector-Instanzen
paralell gestartet. Jede Connector-Instanz wird dabei mit einer
eigenständigen Konfigurationsbasis betrieben. Um eine neue Instanz zu erzeugen, muss das Skript
\ucsCommand{prepare-new-instance} aufgerufen werden, z.B.:

\begin{ucsConsoleInput}
/usr/share/univention-ad-connector/scripts/prepare-new-instance \
-a create -c connector2
\end{ucsConsoleInput}

Dieses Skript erzeugt dann ein weiteres Init-Skript für die zweite
Connector-Instanz (\ucsURL{/etc/init.d/univention-ad-connector2}),
ein Konfigurationsverzeichnis \ucsURL{/etc/univention/connector2} mit
einer Kopie der Mapping-Einstellungen der
Connector-Hauptinstanz (diese kann ggf. angepasst werden) und eine
Reihe interner Laufzeitverzeichnisse.

Die zusätzlichen Connector-Instanzen werden in der
\ucsUCRV{connector/listener/additionalbasenames} registriert.

Erfolgt eine Synchronisation von \ucsUCS{} in Richtung Active
Directory, so muss nach dem Anlegen einer weiteren Connector-Instanz
die Replikation des Listener-Moduls neu angestossen werden. Hierzu
muss der Befehl 
\begin{ucsConsoleInput}
univention-directory-listener-ctrl resync ad-connector
\end{ucsConsoleInput}
aufgerufen werden. Diese Änderung kann gerade bei grossen
Verzeichnisdiensten einige Zeit in Anspruch nehmen und sollte nach
Möglichkeit in einem Wartungsfenster erfolgen.

Die zum Univention AD Connector gehörigen Kommandozeilenwerkzeuge wie
z.B. \ucsCommand{univention-adsearch} unterstützen mit dem Parameter
\emph{-c} die Angabe einer Connector-Instanz.

Die Konfiguration weiterer Connector-Instanzen wird nicht über das
\ucsUMC{}-Modul abgedeckt.
