Konvertieren eines LDAP-Filters in einen SharePoint Server 2010-Verbindungsfilter
Konvertieren eines LDAP-Filters in einen SharePoint Server 2010-Verbindungsfilter
Wenn Sie die Profilsynchronisierung zwischen einem LDAP-Anbieter wie z. B. AD DS und SharePoint Server 2010 einrichten, besitzen Sie möglicherweise einen vorhandenen LDAP-Filter, den Sie in einen SharePoint-Verbindungsfilter konvertieren möchten. Dieser Beitrag enthält ein Beispiel für die Konvertierung eines LDAP-Filters in einen SharePoint-Verbindungsfilter. Anweisungen zum Eingeben des Verbindungsfilters mithilfe der SharePoint-Benutzeroberfläche finden Sie im Abschnitt „Definieren von Ausschlussfiltern für eine Synchronisierungsverbindung“ des Themas Konfigurieren der Profilsynchronisierung.
LDAP-Filter definieren die Verzeichnisobjekte, die Sie einschließen möchten. Mit SharePoint-Verbindungsfiltern werden die Benutzer definiert, die Sie ausschließen möchten.
Sehen wir uns nun einen LDAP-Filter an und überlegen wird, wie wir diesen in einen SharePoint 2010-Verbindungsfilter konvertieren können. Es folgt der verwendete Beispielfilter:
- Suchbasis: DC=cts,DC=contoso,DC=com
- Benutzerfilter: (&(objectCategory=Person)(!userAccountControl:1.2.840.113556.1.4.803:=2) (&(!extensionAttribute1=0)(extensionAttribute1=*)(sAMAccountName=*)(memberOf=CN=SharePoint Users,OU=Security,OU=Groups,DC=cts,DC=contoso,DC=com)))
Nun konvertieren wird den LDAP-Filter in eine Komposition aus einfachen logischen Anweisungen, sodass die Anweisungen einfacher geändert werden können:
- A: objectCategory = Person
- B: userAccountControl:1.2.840.113556.1.4.803:=2
- C: extensionAttribute1=0
- D: extentionAttribute1=*
- E: sAMAccountName=*
- F: memberOf= CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso,DC=com
Der Filter oben würde dann folgendermaßen aussehen: A ∧ ¬B ∧ (¬C ∧ D ∧ E ∧ F)
wobei ∧ AND darstellt, ∨ OR darstellt und ¬ NOT darstellt.
In der folgenden Tabelle wird die Bearbeitung der booleschen Algebra erläutert.
Ursprünglicher LDAP-Filter |
A ∧ ¬B ∧ (¬C ∧ D ∧ E ∧ F) |
Entfernen der Klammern |
A ∧ ¬B ∧ ¬C ∧ D ∧ E ∧ F |
Invertieren des Filters zu einem Ausschlussfilter |
¬ (A ∧ ¬B ∧ ¬C ∧ D ∧ E ∧ F) |
Vereinfachung mit dem De Morgan’schen Gesetz |
¬A ∨ ¬¬B ∨ ¬¬C ∨ ¬D ∨ ¬E ∨ ¬F |
Entfernen der doppelten Verneinung |
¬A ∨ B ∨ C ∨ ¬D ∨ ¬E ∨ ¬F |
Falls A, B, C, D, E, F durch die Anweisungen ersetzt werden, mit denen wir begonnen haben, erhalten wir Folgendes:
(NOT (objectCategory = Person))
OR (userAccountControl:1.2.840.113556.1.4.803: = 2)
OR (extensionAttribute1 = 0)
OR (NOT (extensionAttribute1 = *))
OR (NOT (sAMAccountName = *))
OR (NOT (memberOf = CN=SharePoint Users,OU=Security,OU=Groups,DC=cts,DC=contoso,DC=com))
Beim erneuten Ausdruck dieser Werte in dem Format, das in die SharePoint-Oberfläche für den Verbindungsfilter eingegeben werden kann, erhalten wir Folgendes:
AND/OR |
Attribut |
Operator |
Filter |
OR |
objectCategory |
does not equal |
Person |
OR |
userAccountControl |
bit on equals |
2 |
OR |
extensionAttribute1 |
equals |
0 |
OR |
extensionAttribute1 |
is not present |
|
OR |
sAMAccountName |
is not present |
|
OR |
member |
does not contain |
CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso, DC=com |
Die erste Klausel des Filters, objectCategory does not equal Person ist unnötig. Einträge mit objectCategory does not equal Person werden von SharePoint automatisch ausgeschlossen, wenn Sie einen Verbindungsfilter zum Synchronisieren von Benutzern erstellen. Verwenden Sie beim Erstellen des Verbindungsfilters die Werte in den verbleibenden fünf Zeilen der vorherigen Tabelle, um die Werte im Abschnitt Ausschlussfilter für Benutzer (Exclusion Filter for Users) der Seite Verbindungsfilter bearbeiten (Edit Connection Filters) einzugeben.
Vielen Dank an Oleg Lysyk für die ursprüngliche Version dieser Informationen.
Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Converting an LDAP filter to a SharePoint Server 2010 connection filter.