Postman für den Zugriff auf die SharePoint Online REST API nutzen
Postman ist ein sehr nützliches Tool, um Webservice Schnittstellen zu evaluieren. Unter anderem ist das Tool auch sehr nützlich, um die REST API von SharePoint Online zu verstehen und entsprechende Aufrufe zu erstellen. Diese wiederum kann man dann verwenden, um in Power Automate mit der Aktion Send an HTTP request to SharePoint Funktionen zu nutzen (siehe dazu auch https://ganser-it-consulting.ch/ssharepoint-listen-anlegen-mit-power-automate), die noch nicht als Aktion in Power Automate verfügbar sind. Da Postman jedoch entweder als installiertes Programm unter Windows oder im Browser läuft, muss die Authentifizierung gegen SharePoint Online konfiguriert werden.
Dieser Beitrag beschreibt, was man alles tun muss, um Postman für den Zugriff auf SharePoint Online zu konfigurieren. Ich hatte bereits im Dezember 2018 einen ähnlichen Beitrag dazu verfasst (siehe https://1stquad.com/2018/12/19/microsoft-flow-fuer-den-zugriff-auf-sharepoint-erweitern-teil-1-grundlagen-und-tools/). Jedoch hat sich die Oberfläche vor allem in Azure etwas geändert und ich beschreibe deshalb die Vorgehensweise mit der aktuellen Version des Azure Portals.
Postman im Azure Portal registrieren
Um auf Microsoft 365 und somit auch Sharepoint Online aus Postman zugreifen zu können muss Postman zunächst zugehörigen Azure Active Directory registriert werden. Dieses lässt sich sehr einfach vom Microsoft 365 Admin Center aus aufrufen:
Es wird dann das Azure Active Directory Admin Center aufgerufen. Dort klickt man nochmal auf Azure Active Directory:
In der dann angezeigten Übersicht klickt man auf App Registrations:
Dort lässt sich dann eine neue App Registrierung erstellen:
Auf der dann angezeigten Seite, kann man einen beliebigen Titel vergeben und muss die Redirect URL angeben. Diese ist bei Postman https://www.getpostman.com/oauth2/callback.
Sind alle Eintragungen gemacht, kann man unten auf die Schaltfläche Register klicken:
Das ist allerdings nur die halbe Miete, dann es fehlt noch, was die registrierte Applikation eigentlich alles darf. Einstellen kann man dies über den Punkt API permissions:
Standardmässig kann die neu registrierte App auf Microsoft Graph zugreifen. Dies ermöglicht aber nicht den Zugriff auf die SharePoint Online REST API. Deshalb muss eine neue Berechtigung hinzugefügt werden:
SharePoint ist dabei direkt in der Auswahl verfügbar:
Der Zugriff soll dabei als der angemeldete Benutzer erfolgen. Dies kann im nach Klick auf SharePoint anhand der Delegated permissions erreicht werden.
Ja nachdem, was man erreichen will, kann man nun die Berechtigungen einstellen, die die App auf die SharePoint REST API haben soll. Gerade wenn man Postman während der Entwicklungsphase einsetzt und dann wahrscheinlich sowieso einen eigenen Microsoft 365 Development Tenant (siehe auch 10 things you should do with your Office365 demo or dev tenant) nutzt, ist es am einfachsten, die Berechtigung AllSites.FullControl zu nutzen:
Danach ist die Registrierung in Azure abgeschlossen. Die Postman App könnte nun für den Zugriff auf die SharePoint Online REST API genutzt werden.
Client ID holen und Secret in Azure erstellen
Damit sich Postman gegenüber SharePoint Online authentifizieren kann, müssen 2 Informationen mitgeliefert werden:
- Client ID: Dabei handelt es sich um die Application ID in Azure
- Client Secret: Dieses muss erst erstellt werden
Die Application/Client ID kann aus der Übersicht der App Registrierung entnommen werden:
Das Secret muss erst erstellt werden. Dazu klickt man auf Certificates & Secrets in der linken Navigation und klickt dann auf New client secret:
Danach kann man den Namen des Secret vergeben und auch die Gültigkeitsdauer:
Das erstellte Secret kann man dann kopieren:
Jetzt fehlt eigentlich nur noch die Konfiguration in Postman.
Postman für den Zugriff auf die SharePoint REST API konfigurieren
Wenn man nun in Postman versucht, einen SharePoint Online REST API Aufruf zu machen (z.B. die Anzeige aller Listen in einer Teamsite), erhält man die Meldung zurück, dass man keine Berechtigung hat. Dies liegt daran, dass man die Authentifizierung noch nicht konfiguriert hat und SharePoint nicht weiss wer da eigentlich zugreifen will:
In Postman macht man dies am besten auf Collection Ebene, damit man nicht bei jedem Request die Authentifizierung wieder neu definieren muss:
In den Einstellungen der Collection klickt man nun auf Authorization und wählt dort den TYPE OAuth 2.0 aus. Die weiteren Parameter für einen neuen Token sind dann wir folgt:
Grant Type | Authorization Code |
Callback URL | https://www.getpostman.com/oauth2/callback |
Auth-URL | https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<Ihr tenant name>.sharepoint.com/ |
Access Token URL | https://login.microsoftonline.com/common/oauth2/token |
Client ID | Informationen aus dem Azure Portal (siehe voriges Kapitel) |
Client Secret | Informationen aus dem Azure Portal (siehe voriges Kapitel) |
Client Authentication | Send as Basic Auth header |
In Postman sieht das ganze dann wie folgt aus:
Für Client ID und Client Secret bietet Postman an, dafür eine Variable zu erstellen und diese zu nutzen. Dies ist sinnvoll, da man dann auf den ersten Blick nicht diese beiden Informationen sieht.
Nachdem nun alles konfiguriert ist, kann man in den Authorization Einstellungen noch etwas nach unten scrollen und dann die Schaltfläche Get new Access Token anklicken:
Danach kann man den Permission Request bestätigen, indem man auf die Schaltfläche Accept klickt:
Es wird dann ein Access Token erstellt:
Durch Klick auf die Schaltfläche Use Token, kann man diesen verwenden und danach funktioniert auch der SharePoint Online REST API Zugriff:
0 Comments