SharePoint – Gezielte Berechtigungen für einen Benutzer vergeben

Im Folgenden findest du eine mögliche Vorgehensweise, um mit Power Automate die Berechtigungen in SharePoint zu verwalten. Grundsätzlich gibt es verschiedene Ansätze, je nachdem, ob du Bibliotheken oder Listen verwalten möchtest und wie komplex dein Berechtigungsmodell ist. Ein gängiger Weg führt oft über den Einsatz der Aktion „HTTP-Anforderung an SharePoint senden“ (Send an HTTP request to SharePoint), da sie dir die meisten Freiheiten bietet.

Grundsätzlich gibt es zwei Möglichkeiten, um Berechtigungen innerhalb eines Flows zu setzen oder zu ändern:

Vordefinierte Standardaktionen (Preview / eingeschränkte Verfügbarkeit)
In Power Automate existieren Aktionen wie

  • Grant access to an item or a folder
  • Stop sharing an item or a folder
    Diese Aktionen sind relativ einfach zu konfigurieren und erfordern kein manuelles Aufrufen der SharePoint-API. Sie erlauben jedoch meist nur das Zuweisen bzw. Entziehen von Freigaben (Sharing-Links) oder „Bearbeiten/Lesen“-Rechten. Granulare Einstellungen (z.B. nur „Lesen“, „Mitwirken“, „Vollzugriff“ usw.) können damit nicht vollständig abgedeckt werden.

Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

  • „HTTP-Anforderung an SharePoint senden“ (empfohlener Ansatz für komplexere Anforderungen)
    Um wirklich flexibel alle SharePoint-Berechtigungsstufen (z.B. Lesen, Bearbeiten, Vollzugriff) setzen zu können, ist es meist notwendig, die SharePoint-API über die „HTTP-Anforderung an SharePoint senden“-Aktion aufzurufen. Damit kannst du:
    • Die Berechtigungsvererbung aufheben (breakroleinheritance).
    • Eine Rolle (z.B. Lesen/Bearbeiten) zuweisen (addroleassignment).
    • Rollen entfernen (removeroleassignment).
    • Principal-IDs (Benutzer / Gruppen) ermitteln.
    • u.v.m.

Warum kommt man häufig um das HTTP-Request nicht herum?

  • Die vordefinierten Power Automate-Aktionen für Berechtigungen decken häufig nur das einfache Teilen (Sharing) ab und bieten weniger Granularität.
  • Sobald man spezifische interne SharePoint-Rollen (z.B. „Mitwirken“, „Bearbeiten“, „Vollzugriff“) vergeben oder nur bestimmten Benutzern/Gruppen gezielt Rechte zuweisen will, sind die HTTP-Requests in der Regel der zuverlässigste Weg.

Nachfolgend der Flow um explizite Berechtigungen zu erteilen.

In diesem Beispiel sorgt der Flow dafür, dass nach dem Erstellen des Elements der Autor (User) nur noch lesen Rechte zugewiesen bekommt.

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

Trigger-Aktion: Konfiguration

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

Variable initialisieren Prinzipal ID: Konfiguration

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

HTTP-Anforderung User ID: Konfiguration

Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

URI zum Kopieren:

_api/web/SiteUsers/getByEmail('')

Variable festlegen Prinzipal ID: Konfiguration

Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

KI-generierte Inhalte können fehlerhaft sein.

Function zum kopieren:

string(body('HTTP-Anforderung_User_ID')['d']['id'])

Erläuterung:

Die o.g. Funktion wird häufig in Workflows (wie in Microsoft Power Automate) genutzt, um Daten aus der Antwort einer HTTP-Anforderung zu extrahieren und sie in einen String zu konvertieren. Im Detail passiert Folgendes:

  • body('HTTP-Anforderung_User_ID'): Diese Funktion ruft den Inhalt (Body) der HTTP-Antwort ab, die aus einer vorherigen Aktion mit dem Namen „HTTP-Anforderung_User_ID“ stammt.
  • ['d']['id']: Aus der abgerufenen JSON-Antwort wird zuerst das Objekt unter dem Schlüssel „d“ ausgewählt. Anschließend wird aus diesem Objekt der Wert unter dem Schlüssel „id“ extrahiert.
  • string(...): Der so erhaltene Wert wird schließlich mithilfe der Funktion string() in einen String konvertiert.

HTTP-Anforderung Vererbung aufheben: Konfiguration

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

URI zum Kopieren:

_api/web/lists/getbytitle('Feedback')/Items()/breakroleinheritance(copyRoleAssignments=false, clearSubscopes=true)

Erläuterung:

Vererbung für Element oder Ordner aufheben (falls benötigt)

Um individuelle Berechtigungen auf Listenebene, Ordner- oder Elementebene zu vergeben, muss häufig zuerst die Berechtigungsvererbung aufgehoben werden.

  • Standardaktion in Power Automate: Hier gibt es keine vorgefertigte Aktion, die explizit „Vererbung aufheben“ heißt.
  • Lösung: „HTTP-Anforderung an SharePoint senden“.

Beispiel (HTTP-Request: Vererbung aufheben)

  1. Aktion hinzufügen: HTTP-Anforderung an SharePoint senden.
  2. Methode: POST
  3. URI (Endpoint):

HTTP-Anforderung Berechtigung setzen: Konfiguration

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

KI-generierte Inhalte können fehlerhaft sein.

URI zum Kopieren:

_api/web/lists/getbytitle('Feedback')/Items(<ID>)/roleassignments/addroleassignment(principalid=<ID>, roledefid=1073741826)

Erläuterung:

Berechtigungen setzen oder ändern

Sobald die Vererbung aufgehoben ist, kannst du nun Rollen an Benutzer oder Gruppen vergeben. Hierfür benötigst du diesen Schritt:

Rolle zuweisen (Grant Access)

  • Mit einem weiteren „HTTP-Anforderung an SharePoint senden“ kannst du einem Benutzer oder einer Gruppe die gewünschte Rolle zuweisen.
  • Beispiel (Zugriff gewähren):
    • Methode: POST
    • URI:

_api/web/lists/getbytitle('DeineListe')/items(ID)/roleassignments/addroleassignment(principalid=BENUTZER_ID, roledefid=ROLLE_ID)

    • principalid: ID des Benutzers oder der Gruppe.
    • roledefid: ID der Rolle (z.B. Edit, Read etc.).

Rollendefinition

Rollendefinition Id

Full Control

1073741829

Design

1073741828

Edit

1073741830

Contribute

1073741827

Read

1073741826

View Only

1073741924

Limited Access

1073741825

Viel Spaß beim Umsetzen

Kommentare sind geschlossen