Adaptive Scopes mit SharePoint Custom Attributes

Adaptive Scopes unterstützen SharePoint Custom Attributes. Für einen automatisierten Provisioning Prozess von neuen SharePoint Sites können Adaptive Scopes eine nützliche Kombination sein.

Vor rund zwei Wochen beschrieb ich Adaptive Scopes für Information Governance (bzw. neu Purview Data Lifecycle Management). Mit Adaptive Scopes sind dynamische Retention Policies möglich, bedeutet eine Policy aktualisiert sich selbst. In der Tabelle, welche Attribute für Adaptive Scopes möglich sind, zeigt es bei SharePoint Custom Attributes.

Custom Attributes (bzw. Custom Properties) können in SharePoint eine praktische Sache sein. Oft nutzen Organisationen für die Erstellung von neuen Teams und SharePoint Sites einen Provisioning Prozess mit vordefinierten Eigenschaften. Über so einen Prozess lassen sich Custom Attributes einfach definieren und in der neu erstellten Seite hinterlegen. Da Adaptive Scopes die Attribute auslesen können ist es ein guter Fall für die Praxis. Zur Erinnerung, für den Einsatz von Adaptive Scopes ist eine passende E5 Lizenz erforderlich, siehe Lizenzbedingungen von Purview Data Lifecycle Management.

In meinem Beispiel möchte ich in SharePoint Seiten ein Custom Attribute GDPR setzen. Über ein Adaptive Scope gebe ich vor für alle GDRP relevanten Inhalte soll eine fix definierte Vorhaltezeit gelten.
Das Vorgehen für die Konfiguration von Custom Attributes ist am Ende immer ähnlich. Ist es aus einem Beispiel bekannt, wird es für andere Situationen übertragbar sein.

Ausgangslage

Für mein Beispiel erstellte ich mir mehrere Seiten für 3 unterschiedliche Verwendungszwecke.

  • 3 Seiten für Abteilungen

Abteilungsseiten sollen mit einem Attribut Department versehen sein. Die Kolleginnen und Kollegen aus der Sales Abteilung könnten GDPR relevante Daten speichern.

  • 4 Seiten für Projekte

Projektseiten sollen mit einem Attribut Project versehen sein. Bei ProjectB und D handelt es sich um Projekte mit GDPR Daten. In ProjectD sind nur vorübergehend GDPR Daten gespeichert.

  • 4 Seiten für Kunden

Alle Inhalte aus Kundenseiten fallen unter GDPR.

Anforderungen

Meine Anforderungen an eine Retention Policy:

  • Alle Seiten mit GDPR relevanten Daten sollen ein Custom Attribut GDPR inkludieren.
  • Für Seiten mit dem Attribut GDPR sollen Inhalte 7 Jahre vorgehalten werden.
  • Die Policy soll sich selbstständig aktualisieren und bei Bedarf Seiten mit Bezug zu GDPR in die Policy aufnehmen oder aus der Policy entfernen.

Für die erstmalige Einrichtung sind 4 Konfigurationen erforderlich:

  1. Konfiguration von SharePoint Sites mit Custom Attributes (Custom Properties).
  2. Konfiguration von Microsoft Search für Crawled Properties.
  3. Konfiguration von Adaptive Scope für SharePoint Custom Properties.
  4. Konfiguration von Retention Policy.
Konfiguration von SharePoint Sites mit Custom Attributes (Custom Properties)

Im ersten Schritt muss für betroffene SharePoint Sites die Custom Attributes gesetzt werden. Über PnP PowerShell ist es am schnellsten möglich.

  1. Lade oder aktualisierte die letzte Version des PnP PowerShell Moduls.
  2. Verbinde dich mit Connect-PnPOnline zu den jeweiligen Seiten.
Connect-PnPOnline -Url <SiteUrl> -Interactive
  1. Über Set-PnPAdaptiveScopeProperty definiere ich für die Seite frei definierbare Custom Attributes. In meinem Fall definiere ich für Sales ein Property für Department und einen Vermerk die Seite fällt unter GDPR. Für einen Ja/Nein Wert empfehle ich 1 und 0 einzusetzen. Es ist später einfacher mit dem Property weiterzuarbeiten. Der Name von Properties ist frei wählbar, es ist dennoch ratsam ein org-weites Namensschema zu definieren.
Set-PnPAdaptiveScopeProperty -Key customSiteType -Value Department
Set-PnPAdaptiveScopeProperty -Key customDepartment -Value Sales
Set-PnPAdaptiveScopeProperty -Key customGDPRRelated -Value 1
  1. Kontrolliere ich das PropertyBag der Seite über Get-PnPPropertyBag inkludiert es die 3 neuen Custom Properties.
  1. Ich wiederhole die Schritte 1 bis 4 für die restlichen Abteilungsseiten und definiere das Property customGDPRRelated mit 0.
  2. Ich wiederhole die Schritte 1 bis 4 für Projektseiten und definiere bei ProjectB und ProjectD GDPRRelated mit 1.
Set-PnPAdaptiveScopeProperty -Key customSiteType -Value Project
Set-PnPAdaptiveScopeProperty -Key customGDPRRelated -Value 1
  1. Ich wiederhole die Schritte 1 bis 4 für Kundenseiten und definiere bei allen Seiten dieselben Custom Properties.
Set-PnPAdaptiveScopeProperty -Key customSiteType -Value Customer
Set-PnPAdaptiveScopeProperty -Key customGDPRRelated -Value 1

Die Vorbereitung für die bestehenden Seiten wurde damit abgeschlossen. Über einen Provisioning Prozess ist es einfach die Custom Properties während der Erstellung zu definieren.

Konfiguration von Microsoft Search für Crawled Properties

Ein SharePoint Administrator muss die zuvor definierten Custom Properties als Crawled Property erfassen. Damit wird Microsoft Search die neuen Custom Properties zukünftig indexieren. Die folgenden Schritte müssen für jedes neue Custom Property wiederholt werden.

  1. Öffne das SharePoint Admin Center > More features > Search > Manage Search Schema > Crawled Properties.
  2. Suche nach Custom und du wirst deine 3 Custom Properties finden. Die Properties müssen einem Refiner zugeordnet werden. Da ich im Schritt 3 erwähnte es sei besser 1 und 0 statt Yes/No zu vermerken wähle zuerst customGDPRRelated.
  1. Klick auf das Property customGDPRRelated. Es öffnet sich ein Assistent für das Mapping von managed properties. Füge ein Mapping ein.
  1. Suche nach einem Property mit der Bezeichnung Refinable. Es wird dir div. Properties listen. Jetzt musst du wählen zu welchem Typ es am besten passt. Es gibt keinen Refinable Property für Boolean, darum ist für 1 und 0 ein Integer besser geeignet. Für mein Property customGDPRRelated wähle ich RefinableInt00(Integer).
  1. Wiederhole die Schritte 10 und 11 für die zwei weiteren Custom Properties Department und SiteType. Es sind reine Textproperties (String). Es wird daher RefinableString00 und 01 gewählt. Pro Refinable Property ist es je eine Zuordnung.
  2. Am Ende sind alle 3 Custom Properties zugeordnet.
  1. Neu erstellte Crawled Properties indexiert die SharePoint Suche erst bei einem Full Crawl. Im Vergleich zu SharePoint Server ist ein Full Crawl in Microsoft Search nicht einfach bestellbar. Etwas mühsam, aber notwendig, via PnP.PowerShell verbindet man sich erneut zu den oben gelisteten Seiten und beantragt mit Request-PnPReIndexWeb die Re-Indexierung. Je nach Datenmenge kann es ein paar Stunden dauern. Da der nächste Schritt mit Adaptive Scopes bis zu 5 Tage dauert solltest du nicht auf das Ergebnis der Suche warten und fortfahren.
    Den Suchstatus kannst du später testen, indem du office.com/search öffnest und in der Suche RefinableInt00=1 eingibst. Als Ergebnis sollte dir die Suche alle Seiten mit customGDPRRelated zurückgeben.
Suchergebnisse für Custom Attribute customGDPRRelated mit Wert 1
Konfiguration von Adaptive Scope für SharePoint Custom Properties

Da neue Adaptive Scopes bis zu 5 Tage zur vollständigen Aktualisierung benötigen sollte die Konfiguration von einem neuen Scope so bald wie möglich stattfinden.

  1. Öffne das M365 Compliance Center > Information Governance > Adaptive Scopes und erstelle einen neuen Scope.
  2. Vergib einen Namen.
  3. Im nächsten Schritt wählst du Scope für SharePoint Sites.
  4. Hättest du das Property customGDPRRelated in Schritt 11 als String erfasst könntest du jetzt einen der vordefinierten String Refinables wählen. In meinem Fall erstelle ich über die Keyword Query Language (KQL) eine Custom Query RefinableInt00=1. Es ist eine einfache Query. Möchtest du weitere Attribute inkludieren (zb eingrenzt auf Site Type Project) kannst du KQL Operatoren einsetzen.
Beispiel zur Abfrage von GDPR Sites
Beispiel zur Abfrage von GDPR und Project Sites
  1. Speichere deine Konfiguration und warte zwischen 24 Stunden und 5 Tagen. Prüfe in der Zeit die Scope Details. Der Scope sollte die SharePoint Sites aufnehmen. In meinem Beispiel erkannte es 7 Seiten.

Konfiguration von Retention Policy

Da der Adaptive Scope sich korrekt aktualisiert kann die letzte Vorbereitung stattfinden, die Konfiguration der Retention Policy für 7 Jahre.

  1. Öffne erneut das M365 Compliance Center > Information Governance > Retention Policies und erstelle eine neue Retention Policy.
  2. Vergib der Policy einen Namen.
  3. Bei der Wahl von Retention Policy wählst du die Option für Adaptive.
  1. Jetzt wählst du deinen in Schritt 15 erstellten Adaptive Scope. Da es ein SharePoint Scope ist wird es standardmässig nur SharePoint Sites aktivieren.
  1. Fahre fort und wähle als Vorhaltezeit deine gewünschte Zeit und was mit dem Inhalt nach der Zeit geschehen soll. “Do nothing” bedeutet das System hält die Daten zumindest für die Zeit vor. Nach der Zeit könnte es eine berechtigte Person manuell löschen.
  1. Erstelle deine Policy. Bis die Policy verteilt ist kann es 24 Stunden dauern. In der Policy zeigt das System einen Status.

Automatische Aktualisierung von Adaptive Scopes

In meiner Ausgangslage erwähnte ich ProjectD hält nur temporär GDPR Daten vor. Ich setze das Custom Property customGDPRRelated auf 0 und warte ab wie sich mein Adaptive Scope verhält. Innerhalb 24 Stunden hat der Scope die Änderung erkannt, sich selbst aktualisiert und die betroffene Site entfernt. Der Adaptive Scope erfüllt damit seine Aufgabe.

Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert