Office 365 SharePoint API Verwaltung
Contents
Wer neue SPFX WebParts erstellt und dabei auf Azure Active Directory oder dem Microsoft Graph zugreifen möchte, kommt zukünftig nicht an der Office 365 SharePoint API-Verwaltung im neuen Admin-Center vorbei.
Wenn es einmal funktioniert, hat der SharePoint Admin keine Sorgen. Leider ist es noch etwas Fehler anfällig. Ich zeige hier ein paar Fehlermeldungen auf und erläutere was im Hintergrund passiert.
Fehlermeldungen in der API-Verwaltung
Folgende Fehlermeldungen hatte ich bereits zu sehen bekommen:
- [HTTP]:500 – [CorrelationId]:<….> [Version]:16.0.0… – Another object with the same value for property identifieruris already exists
- [HTTP]:500 – [CorrelationId]:<….> [Version]:16.0.0… Unbekannter Fehler
- [HTTP]:500 – [CorrelationId]:<….> [Version]:16.0.0… Unknown Error
- [HTTP]:400 – [CorrelationId]:<….> [Version]:16.0.0… The service principal for permssion request … -client-side-solution could not be found
Sobald ein Entwickler oder Admin eine App mit API-Anfragen (bspw. MS Graph) in den App-Catalog vom SharePoint hochgeladen hat, wird er auf den Dienstprinzipal (service principal) aufmerksam gemacht. Es stehen jetzt Genehmigungen im neuen SharePoint Admin-Center aus.
Dazu wechselt der Admin ins Modern Admin Center –> Api-Verwaltung.
Sollten hier die oben aufgeführten Fehler auftauchen, muss der Admin leider seine Kollegen vom Azure Portal Team kontaktieren. Jetzt muss unter portal.azure.com des Tenants weitergearbeitet werden. Hier liegt die Ursache beim Thema App-Registerungen.
Probleme und Lösungen
Als erstes öffnet man den Link zu „All Services“ und sucht nach „App-Registration„
Dann wird der Reiter „All Application“ geöffnet.
Hier sollte jetzt ein „SharePoint Online Client Extensibility Web Application Principal“ zu finden sein.
Bei mir wurden durch irgendeinen Grund auf einem Tenant 4 Stück angelegt. Dies hat den logischer Weise den folgenden Fehler hervorgerufen:
[HTTP] 500 … Another object with the same value for property identifieruris already exists
Es darf in dieser Übersicht nur einmal das „SharePoint Online Client Extensibility Web Application Principal“ stehen. Sobald es zwei sind, kommt es zum Fehler in der SharePoint API Verwaltung.
[HTTP] 500 … Another object with the same value
Hier bleibt einen eigentlich nichts anderes übrig als herauszufinden, welche der angelegten Principale nicht notwendig sind.
Lösungsalternative A: Trial and Error –> Man löscht über die Azure – Oberfläche alle bis auf ein Prinzipal. Dann öffnet man die SharePoint API Verwaltung und aktualisiert diese. Wenn jetzt die Anfragen der API erscheinen, hat man das richtige Objekt erwischt.
Ist das nicht der Falls löscht man das aktuell Objekt ebenfalls und stellt ein anderes aus dem Azure Papierkorb wieder her. Ich habe den Papierkorb nicht in der Oberfläche gefunden und auf Powershell zurückgegriffen.
#AzureAD Stand 17.05.2019 - (nicht Azure AD Preview)
$AzureAdCred = Get-Credential
Connect-AzureAD -Credential $AzureAdCred
#Anzeigen aller gelöschten Objekte (damit erhält man die Objekt ID)
Get-AzureADDeletedApplication
#Wiederherstellen eines Objektes
Restore-AzureADDeletedApplication -ObjectId <HIERDIEID>
Mit dem oben aufgeführten Script kann jetzt jeweils ein Objekt wiederhergestellt und getestet werden. Ist es das Objekt nicht, wird es wieder gelöscht und man setzt mit dem nächsten fort.
Lösungsalternative B: Ich habe bei mir meine App (die den API-Zugriff nutzt) in der SiteCollection aktualisiert und ausgeführt – es gab dann eine Fehlermeldung inkl. Prinzipal ID. Diese ID lässt sich auch im SharePoint Online Client Extensibility Web Application Principal Objekt finden. Mann kann dann gezielt die anderen Objekte löschen.
[HTTP]:500 – [CorrelationId]:<….> [Version]:16.0.0… Unknown Error
Wenn dieser Fehler auftritt, ist kein „SharePoint Online Client Extensibility Web Application Objekt“ angelegt. Zumindest war das bei mir der Fall. Es kann sein, dass es sich bereits im Papierkorb befindet oder der Nutzer kein Recht hat es anzulegen.
Man kann probieren die App nochmal in den App-Katalog einzustellen oder man legt ein App Registration im Azure an.
[HTTP]:400 – [CorrelationId]: The service principal for permssion request … could not be found
Wenn dieser Fehler zu sehen ist, fehlt noch der eigentliche Service Principal. In der Abbildung ist zu sehen, wo dieser eingetragen sein muss. Ist dies nicht der Fall, steht an der Stelle „Create Service Principal“ das muss man dann anklicken und kurz warten. Es sollte automatisch funktionieren und die Fehlermeldungen sind dann im SharePoint Admin-Center weg.
Ich hoffe es hilft den einen oder anderen.
Bei Fragen einfach hier anklopfen: HB Munich Apps