Einblicke in SharePointSharePoint-Verzeichnisintegration

Pav Cherny

Codedownload verfügbar unter: SharePoint2008_09.exe(2.775 KB)

Inhalt

SharePoint-Verzeichnisverwaltungsdienst
Benutzerdefinierter Verzeichnisverwaltungsdienst
SharePoint und ILM

Microsoft Windows SharePoint Services (WSS) 3.0 und Microsoft Office SharePoint Server (MOSS) 2007 beinhalten Verzeichnissynchronisierungsfunktionen in Form eines Verzeichnisverwaltungsdiensts, der E-Mail-aktivierte Kontakte und Gruppenobjekte für SharePoint-Ressourcen in Active Directory bereitstellen kann. Durch die Bereitstellung dieser Arten von

Empfängerobjekten für SharePoint®-Ressourcen können Benutzer beim Senden von Dokumenten und anderen Informationen SharePoint-Bibliotheken, -Listen und -Gruppen direkt aus dem Microsoft® Outlook®-Adressbuch auswählen.

SharePoint-Empfängerobjekte bieten auch eine Methode zum Steuern von Nachrichtenübertragung und Formatkonvertierungen in einer Exchange Server-Organisation. Unter anderem können Sie verhindern, dass nicht authentifizierte Absender wie Spammer Nachrichten an SharePoint-Bibliotheken senden, indem Sie in Active Directory® Einschränkungen für die Nachrichtenübermittlung festlegen.

Die SharePoint-Verzeichnisverwaltungsfunktionen sind jedoch begrenzt und setzen zum Zeitpunkt dieses Artikels Exchange Server 2003 als zugrunde liegendes Messagingsystem voraus. Wenn Sie Exchange Server 2007 oder ein Drittanbieter-Messagingsystem verwenden, müssen Sie die integrierten Verzeichnisverwaltungsfeatures vorerst durch eine benutzerdefinierte Lösung erweitern oder ersetzen, um den gewünschten Interoperabilitätsgrad zu erreichen.

In diesem Artikel wird zunächst kurz auf die SharePoint-Verzeichnisverwaltungsfeatures eingegangen und dann ein Ansatz zur Überwindung der vorhandenen Einschränkungen erläutert. Die Prämisse besteht darin, dass der integrierte Verzeichnisverwaltungsdienst nur die grundlegendsten Benutzeranforderungen erfüllt. Umgebungen mit verschiedenen Messagingsystemen und Verzeichnisplattformen erfordern eine größere Flexibilität und Funktionalität. Wenn Sie die integrierte Komponente durch eine benutzerdefinierte Lösung ersetzen, können Sie SharePoint-Empfängerinformationen mit jeder Verzeichnislösung synchronisieren, die eine API oder Importfunktionen bietet.

Um dies zu beweisen, wird Ihnen in diesem Artikel gezeigt, wie Sie SharePoint-Empfängerinformationen in einer mit Exchange Server 2007 kompatiblen Weise synchronisieren können. Analog dazu können Sie eine benutzerdefinierte Lösung verwenden, um Empfängerinformationen mit IBM Lotus Notes oder anderen Systemen zu synchronisieren.

Sie erhalten auch die Möglichkeit, die Prozesse zur Verzeichnisbereitstellung auf Grundlage eines Metaverzeichnisdiensts wie Identity Information Server, der in Microsoft Identity Lifecycle Manager (ILM) 2007 Feature Pack 1 (FP1) enthalten ist, zu zentralisieren. Insbesondere erfahren Sie, wie Sie SharePoint in ILM 2007 integrieren können, um die Bereitstellung von Verzeichnisobjekten für SharePoint-Dokumentbibliotheken zu koordinieren. Sie finden die Tools, den Quellcode und die schrittweisen Anleitungen für die Erstellung dieser Lösung im Begleitmaterial zu diesem Artikel, das im Codedownloadbereich von .com zur Verfügung steht.

SharePoint-Verzeichnisverwaltungsdienst

Im Unterschied zum Exchange Server-System, bei dem Active Directory für nahezu alle Konfigurations- und Empfängerinformationen verwendet wird, basiert SharePoint auf Konfigurations- und Inhaltsdatenbanken. SharePoint muss daher Empfängerinformationen für E-Mail-aktivierte Bibliotheken, Listen und Gruppen aus den entsprechenden Datenbanken an ein Verzeichnis verteilen. Messagingclients erwarten schließlich, Empfängerinformationen in einem Adressbuch zu finden, das in der Regel aus Verzeichnisobjekten generiert wird.

SharePoint enthält zu diesem Zweck standardmäßig einen Verzeichnisverwaltungsdienst, der Bestandteil des E-Mail-Integrationswebdiensts (SharepointEmailWS.asmx) ist, den Sie in der SharePoint 3.0-Zentraladministration auf der Seite „Vorgänge“ unter „Einstellungen für eingehende E-Mail“ konfigurieren können. Abbildung 1 zeigt die Funktionsweise des integrierten Verzeichnisverwaltungsdiensts.

fig01.gif

Abbildung 1 Architektur des SharePoint-Verzeichnisverwaltungsdiensts (zum Vergrößern auf das Bild klicken)

Wenn Sie eine Webfarm für die Verzeichnisverwaltung aktivieren und dann einer Bibliothek, Liste oder Gruppe eine E-Mail-Adresse für den Empfang von Nachrichten zuweisen (beispielsweise durch Verwendung von EmailSettings.aspx), können Sie den E-Mail-Integrationswebdienst implizit aufrufen, um entsprechende Empfängerobjekte in Active Directory bereitzustellen. Zuerst speichert SharePoint die E-Mail-Adressinformationen in der Inhaltsdatenbank. Dann sendet SharePoint die Bereitstellungsanforderung unter Verwendung der Identität des Webanwendungspoolkontos für Sie an den E-Mail-Integrationswebdienst. Wenn die Bereitstellungsanforderung fehlschlägt, erhalten Sie zwar E-Mail-Adressinformationen in der Inhaltsdatenbank, aber ohne entsprechende Empfängerobjekte in Active Directory.

Zusätzliche Ressourcen

Bereitstellungsanforderungen können aus verschiedenen Gründen fehlschlagen. Der häufigste Grund sind fehlende Zugriffsberechtigungen für die IIS-Metabasis. Da SharepointEmailWS.asmx als Webdienst für Anwendungspoolkonten entwickelt wurde, prüft dieser Webdienst die IIS-Metabasis, um festzustellen, ob der Aufrufer ein Anwendungspoolkonto ist. Ist das nicht Fall, verweigert er unabhängig von Ihren SharePoint-Website- und Active Directory-Berechtigungsstufen den Zugriff.

Da SharepointEmailWS.asmx diese Zugriffsprüfung jedoch mit der Identität des Aufrufers durchführt, benötigt das aufrufende Anwendungspoolkonto Zugriff auf die Metabasis, um seine eigenen Zugriffsberechtigungen zu überprüfen. Dadurch sind Sie gezwungen, Ihren Anwendungspoolkonten erweiterte Berechtigungen zu erteilen, damit der Vorgang erfolgreich durchgeführt wird.

Natürlich ergeben sich aus erweiterten Berechtigungen für einen Webserver Sicherheitsprobleme. Es gibt bessere Möglichkeiten für die Steuerung des Zugriffs auf einen ASP.NET-Webdienst. Außerdem erwartet SharePoint, den Verzeichnisverwaltungsdienst auf der Zentraladministrationswebsite zu finden. Diese Website ist jedoch in einer Webfarm, die zur Verkleinerung der Angriffsfläche gesperrt wurde, nicht dauerhaft verfügbar. Wenn Sie den integrierten Verzeichnisverwaltungsdienst in Ihrer SharePoint-Produktionsumgebung verwenden möchten, müssen Sie daher eine schwächere Sicherheitskonfiguration hinnehmen.

Weitere Einschränkungen beruhen auf der Tatsache, dass der integrierte Verzeichnisverwaltungsdienst auf einer eng gekoppelten Client/Server-Architektur basiert. Microsoft.SharePoint.dll verwendet System.DirectoryServices.dll direkt, sodass Sie keine eigene Logik zur Anpassung des Bereitstellungsprozesses implementieren können. So werden beispielsweise durch die Implementierung des integrierten Verzeichnisverwaltungsdiensts nicht alle Empfängerattribute zur Unterstützung von Exchange Server 2007 geschrieben, und es ist keine Option für die Anpassung der Attributgenerierungsregeln vorhanden.

Die fehlende Möglichkeit zum Implementieren eigener Logik bedeutet auch, dass Sie den Bereitstellungsprozess nicht anpassen können, um beispielsweise benutzerdefinierte Genehmigungen zu implementieren. SharePoint unterstützt Genehmigungsprozesse für Gruppen, aber dieses Feature basiert auf der Zentraladministrationswebsite. Nur SharePoint-Farmadministratoren können ausstehende Anforderungen genehmigen. SharePoint-Administratoren sind jedoch nicht unbedingt für die Genehmigung von Active Directory-Bereitstellungsprozessen verantwortlich.

Noch wichtiger ist vielleicht, dass es keine Genehmigungsprozesse für E-Mail-aktivierte Dokumentbibliotheken und Listen gibt. Wenn Sie die Verzeichnisverwaltung ermöglichen, erteilen Sie im Grunde allen Websiteadministratoren in Ihrer Webfarm das Recht, E-Mail-aktivierte Kontakte und Gruppen in Active Directory zu erstellen. Es ist auch nicht möglich, die Empfängerverwaltung auf Grundlage von Organisationseinheiten (Organizational Units, OUs) zu strukturieren, weil alle Empfängerobjekte pro Webfarm in derselben Organisationseinheit platziert werden.

Sie können die Empfängerobjekte nicht in eine andere Organisationseinheit verschieben, weil der Verzeichnisverwaltungsdienst erwartet, die Empfängerobjekte in der SharePoint-Organisationseinheit zu finden, und Sie müssen dem Anwendungspoolkonto der SharePoint-Zentraladministration Administratorrechte in Active Directory erteilen. Darüber hinaus gibt es keine Möglichkeit zum Implementieren der bidirektionalen Synchronisierung zwischen SharePoint und Active Directory. Beim Ändern von Objektattributen in Active Directory werden die Änderungen nicht wieder an die SharePoint-Umgebung verteilt.

Benutzerdefinierter Verzeichnisverwaltungsdienst

Nachdem nun festgestellt wurde, dass der integrierte Verzeichnisverwaltungsdienst das Potenzial für zusätzliche Flexibilität bietet, sollen jetzt einige Alternativen erläutert werden. Die gute Nachricht ist, dass SharePoint Ihnen die Implementierung eines eigenen Verzeichnisverwaltungsdiensts ermöglicht. Sie müssen Ihren Webdienst lediglich in der SharePoint 3.0-Zentraladministration auf der Seite „Vorgänge“ unter „Einstellungen für eingehende E-Mail“ als Remote-Verzeichnisverwaltungsdienst registrieren.

Ausführliche Schritt-für-Schritt-Anleitungen für die Bereitstellung und Registrierung eines benutzerdefinierten Webdiensts finden Sie im Arbeitsblatt „Directory Integration Based on a Custom Directory Management Service.xps“ (Verzeichnisintegration auf Grundlage eines benutzerdefinierten Verzeichnisverwaltungsdiensts) im Begleitmaterial. Darüber hinaus zeigt das Beispiel für einen benutzerdefinierten Webdienst, wie mit Exchange Server 2007 kompatible Empfängerobjekte in Active Directory ohne Cmdlets oder Exchange-Verwaltungstools bereitgestellt werden können. Den entsprechenden Quellcode finden Sie im Ordner „EmailIntegrationService“. Abbildung 2 zeigt die Lösungsarchitektur.

fig02.gif

Abbildung 2 Architektur des benutzerdefinierten Verzeichnisverwaltungsdiensts (zum Vergrößern auf das Bild klicken)

Die Schnittstelle des benutzerdefinierten Webdiensts muss der im SharePoint SDK dokumentierten Verzeichnisverwaltungsdienst-Schnittstelle entsprechen. Wenn Sie auf der MSDN®-Website (msdn.microsoft.com) nach „SharepointEmailWS“ suchen, finden Sie alle erforderlichen Informationen. Sie können sich auch die Datei „Service.cs“ im Ordner „EmailIntegrationService\App_Code“ im Begleitmaterial ansehen. Diese Datei implementiert die erforderliche Webdienstschnittstelle, während sich der eigentliche Code für die Bereitstellung von Active Directory-Objekten in SPRecipient.cs befindet. Die UpdateRecipientAttributes-Funktion in SPRecipient.cs generiert beispielsweise die erforderlichen Exchange Server 2007-Attribute. SPRecipient.cs ist die Codedatei, die Sie ersetzen müssen, wenn Sie einen eigenen benutzerdefinierten Verzeichnisverwaltungsdienst entwickeln möchten.

Ein benutzerdefinierter Verzeichnisverwaltungsdienst ist ein geeignetes Tool für die Beseitigung erweiterter Berechtigungsanforderungen und die Integration von SharePoint in Verzeichnis- oder Messagingsysteme von Drittanbietern. Sie müssen nicht die IIS-Metabasis prüfen, um den Webdienstzugriff auf Anwendungspoolkonten zu beschränken. Stattdessen können Sie der Datei „web.config“ Ihres Webdiensts einen <authorization>-Abschnitt hinzufügen. (Ein Beispiel finden Sie im Begleitmaterial.)

Es bleiben jedoch mehrere Probleme bestehen, da Sie nicht steuern können, ob und wann SharePoint Ihren Verzeichnisverwaltungsdienst aufruft. SharePoint ruft unter anderem den Verzeichnisverwaltungsdienst nicht auf, wenn Sie eine E-Mail-aktivierte Dokumentbibliothek oder Liste löschen, sodass ein ungültiges Empfängerobjekt in Active Directory verbleibt. Unabhängig davon, ob Sie den integrierten Verzeichnisverwaltungsdienst oder eine benutzerdefinierte Lösung verwenden, können Sie nicht garantieren, dass die Empfängerinformationen in Active Directory den SharePoint-Ressourcen entsprechen.

SharePoint und ILM

Um eine zuverlässige Verzeichnisintegration zu erzielen, sollten Sie die Bereitstellung eines professionellen Verzeichnisverwaltungspakets wie ILM in Betracht ziehen. Dieses System beruht auf einem Pull-basierten Verzeichnissynchronisierungsmodell. Verwaltungsagents rufen Informationen mittels Pull aus ihren verbundenen Quellen ab, importieren sie in ein gemeinsames Metaverzeichnis und exportieren Informationen aus dem Metaverzeichnis in ihre verbundenen Systeme. Quellsysteme übertragen ihre Informationen in der Regel nicht mittels Push in das Metaverzeichnis. Durch die Übertragung von Informationen mittels Pull können Sie die Konsistenz mit jedem Synchronisierungszyklus sicherstellen.

Ein weiterer Vorteil besteht darin, dass ILM mehrere Verwaltungsagents zur standardmäßigen Unterstützung von Active Directory, Lotus Notes und verschiedener anderer Systeme enthält. Sie müssen lediglich einen benutzerdefinierten Verwaltungsagent für SharePoint implementieren, um SharePoint-Informationen mit einer anderen unterstützten Verzeichnisplattform in Ihrer Umgebung zu synchronisieren.

Sie müssen die Logik zum Abrufen der gewünschten Informationen aus SharePoint implementieren, die Informationen in einer Importdatei speichern und die importierten Informationen in das Metaverzeichnis übertragen. Es ist jedoch nicht erforderlich, dass Sie die Logik für den Export dieser Informationen aus dem Metaverzeichnis in Active Directory oder eine andere Verzeichnisplattform implementieren. Abbildung 3 zeigt, wie die Synchronisierung von SharePoint zu Active Directory mithilfe von ILM implementiert wird. Es ist auch möglich, die Synchronisierung in der anderen Richtung zur Bereitstellung von SharePoint-Ressourcen für Verzeichnisobjekte zu erreichen, obwohl dies als unnötig oder optional betrachtet werden kann.

fig03.gif

Abbildung 3 Verzeichnisintegration auf Grundlage von Identity Lifecycle Manager (zum Vergrößern auf das Bild klicken)

Ein guter Ausgangspunkt für die Entwicklung eines SharePoint-Verwaltungsagent ist der Artikel „Verbinden von ILM 2007 mit SharePoint Services-Listen“ von Alex Tcherniakhovski unter blogs.msdn.com/alextch/archive/2007/09/02/wsslistsandilm.aspx. Alex Tcherniakhovski zeigt, wie eine ILM-basierte Verzeichnisverwaltungslösung erstellt wird, die darauf beruht, dass InfoPath®-basierte Bereitstellungsanforderungen an eine Dokumentbibliothek gesendet werden. Der Verwaltungsagent von Alex Tcherniakhovski ruft alle genehmigten Anforderungen aus der Dokumentbibliothek ab und erstellt entsprechende Metaverzeichnisobjekte, die dann in verbundene Verzeichnisse exportiert werden können.

Standardmäßig generiert SharePoint jedoch keine InfoPath-basierten Bereitstellungsanforderungen, wenn Sie eine Liste oder Gruppe für E-Mail aktivieren. Sie können dies zwar durch einen benutzerdefinierten Verzeichnisverwaltungsdienst erreichen, aber dann treten die bereits erwähnten Konsistenzprobleme auf, weil SharePoint den Verzeichnisverwaltungsdienst nicht unter allen Umständen aufruft. Aus diesem Grund empfiehlt es sich, dass Ihr Verwaltungsagent die gewünschten SharePoint-Empfängerinformationen direkt aus den Listen und Gruppen in Ihrer Websitesammlung abruft. Wenn Sie Genehmigungsprozesse benötigen, können Sie dann InfoPath-basierte Bereitstellungsanforderungen für neue Ressourcen im Verwaltungsagent generieren und anschließend alle genehmigten Anforderungen verarbeiten.

Für das Abrufen von SharePoint-Informationen haben Sie mehrere Optionen. Sie können die Informationen direkt aus den Inhaltsdatenbanken lesen, das SharePoint-Objektmodell verwenden oder SharePoint-Webdienste nutzen.

Der direkte Zugriff auf Inhaltsdatenbanken ist nicht empfehlenswert, da die Datenbankstrukturen sich in zukünftigen Versionen ändern können, wodurch die Funktionstüchtigkeit Ihrer Verzeichnisverwaltungslösung beeinträchtigt werden würde.

Die direkte Verwendung des SharePoint-Objektmodells in Ihrem Verwaltungsagent ist ähnlich problematisch, da das Objektmodell erfordert, dass Sie den Code lokal ausführen. Die Installation von ILM auf einem Webserver in jeder SharePoint-Farm in Ihrer Umgebung kann jedoch die Verzeichnisverwaltungsinfrastruktur verkomplizieren.

Möglicherweise denken Sie an die Verwendung von SharePoint-Webdiensten. Dies wirft jedoch eine weitere Schwierigkeit auf, weil über SharePoint-Webdienste nicht problemlos auf die gewünschten Informationen wie E-Mail-Adressinformationen für SharePoint-Gruppen oder die Anzeigeadresse des Posteingangsservers zugegriffen werden kann.

Letztendlich scheint es am besten, einen benutzerdefinierten SharePoint-Webdienst zu implementieren, der die gewünschten Informationen mithilfe des SharePoint-Objektmodells abruft und sie in Form eines XML-Dokuments an den Aufrufer zurückgibt. Jetzt können Sie die ILM-Bereitstellung zentralisieren und beliebig viele Farmen und Websitesammlungen durch einzelne Instanzen des benutzerdefinierten SharePoint-Webdiensts integrieren, wie in Abbildung 3 dargestellt.

Ein Aspekt bleibt noch zu erwähnen: Durch die ILM-basierte Verzeichnisintegration entfällt nicht die Notwendigkeit eines benutzerdefinierten Verzeichnisverwaltungsdiensts. Dieser benutzerdefinierte Dienst muss keine Arbeiten übernehmen, da ILM die Verzeichnisobjekte bereitstellt. Sie müssen jedoch einen benutzerdefinierten Dienst bereitstellen, um die Verzeichnisverwaltung in der SharePoint 3.0-Zentraladministration zu ermöglichen. Andernfalls können Sie beispielsweise Gruppen keine E-Mail-Adressen zuweisen. Abbildung 4 zeigt die resultierende Lösungsarchitektur.

fig04.gif

Abbildung 4 Webdienstbasierte SharePoint-Verzeichnisintegration (zum Vergrößern auf das Bild klicken)

Sie können den im Begleitmaterial enthaltenen benutzerdefinierten Verzeichnisverwaltungsdienst in einen Dummydienst verwandeln, indem Sie den OpMode-Parameter in der Datei „web.config“ (<add key="OpMode" value="dummy"/>) festlegen. In dieser Konfiguration gibt der benutzerdefinierte Dienst immer SUCCESS als Antwort auf Bereitstellungsaufrufe zurück, ohne Arbeiten durchzuführen.

Außerdem macht der benutzerdefinierte Dienst eine ResolveUsers-Methode verfügbar, die der SharePoint-Verwaltungsagent aufrufen kann, um NetBIOS-basierte Benutzerkontonamen in Distinguished Names aufzulösen – ein erforderlicher Schritt beim Bereitstellen von Gruppen. (SharePoint gibt Informationen zur Gruppenmitgliedschaft als eine Liste NetBIOS-basierter Benutzerkontonamen zurück, Active Directory erwartet jedoch Distinguished Names.) Das ist auch schon alles. Informationen zum Bereitstellen der resultierenden Lösung finden Sie in „Configuring Directory Integration based on ILM 2007.xps“ (Konfigurieren der Verzeichnisintegration auf Grundlage von ILM 2007) im Begleitmaterial.

WSS 3.0 und MOSS 2007 enthalten einen Verzeichnisverwaltungsdienst zur Integration von SharePoint in Exchange Server 2003 für die Messaging-basierte plattformübergreifende Zusammenarbeit.

Es gibt jedoch mehrere Einschränkungen. Benutzer müssen den integrierten Verzeichnisverwaltungsdienst durch eine benutzerdefinierte Lösung ersetzen. Sie könnten SharePoint auch mithilfe einer professionellen Verzeichnisverwaltungslösung wie ILM in eine Verzeichnisverwaltungsinfrastruktur integrieren. Dies bietet ein Höchstmaß an Flexibilität und unterstützt die Gewährleistung der Informationskonsistenz durch ein Pull-basiertes Synchronisierungsmodell.

Pav Cherny ist IT-Experte und Autor und ist auf Microsoft-Technologien für Zusammenarbeit und einheitliche Kommunikation spezialisiert. Seine Veröffentlichungen enthalten Whitepaper, Produkthandbücher sowie Bücher mit dem Schwerpunkt IT-Vorgänge und Systemverwaltung. Pav Cherny ist Präsident der Biblioso Corporation, eines Unternehmens, das auf verwaltete Dokumentations- und Lokalisierungsdienste spezialisiert ist.