Heute hatte ich bei einem Kunden plötzlich das Problem, dass ein Flow nicht mehr lief. Man muss dazu sagen, dass der Flow mit seinem eigenen Kontext auf eine SharePoint Liste zugreift und Inhalte mit eindeutigen Berechtigungen setzt, so wie hier beschrieben: https://medium.com/@anoopt/accessing-sharepoint-data-using-postman-sharepoint-rest-api-76b70630bcbf
Daher hat der Flow eine Client ID und Client Secret verwendet, so wie man es ggf. aus der App Entwicklung kennt. Beim Aufruf genau an diesem Schritt kam auf einmal ein Fehler:
{„error“:“invalid_client“,“error_description“:“AADSTS7000222: The provided client secret keys are expired. Visit the Azure Portal to create new keys for your app, or consider using certificate credentials for added security: https://docs.microsoft.com/azure/active-directory/develop/active-directory-certificate-credentials\r\nTrace ID: a256b3ae-7f2d-4128-b245-a98180c13800\r\nCorrelation ID: 2f7256bb-2578-4964-be94-c1d6fdbb5061\r\nTimestamp: 2020-06-15 06:30:45Z“,“error_codes“:[7000222],“timestamp“:“2020-06-15 06:30:45Z“,“trace_id“:“a256b3ae-7f2d-4128-b245-a98180c13800″,“correlation_id“:“2f7256bb-2578-4964-be94-c1d6fdbb5061″,“error_uri“:“https://accounts.accesscontrol.windows.net/error?code=7000222″}

Offensichtlich ist der Token abgelaufen. Scheinbar ist das eine Neuerung, denn bis dato war die Registrierung unendlich lange gültig.
Enterprise Applications
Eine weitere Neuerung ist, dass zum Einen diese Apps auch im Azure AD angezeigt werden, unter Enterprise Applications, allerdings ohne Client secret, registriere ich hingegen eine neue App direkt im Azure AD:

Dann kann ich Client ID und secret einsehen und verwalten:

Der Zugriff klappt auch hinterher noch über die URL (GUID = Client ID): https://aad.portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/Overview/appId/7719171d-af4a-4564-ab1d-a68b256a0af7/isMSAApp/
Für SharePoint gibt es den Punkt nicht, ist auch keine „echte“ Enterprise Application (damit sie angezeigt wird, muss man den Filter auf all Applications umschalten:

Neue App Registrierung
Die Lösung war in diesem Fall die App Registrierung in SharePoint neu vorzunehmen. Aktuell gehe ich davon aus, dass dies nur zwei Jahre gültig sein wird, sonst wäre es bei mir nicht ausgelaufen. Das beschreibt der Artikel am Anfang, konkret an der jeweiligen Site Collection /_layouts/15/appregnew.aspx starten und neue Client ID und neues Client secret generieren. Diese unbedingt merken und dann im Flow ersetzen. Wird der Flow zusätzlich dazu verwendet, um auch Rechte zu setzen oder mit Full Control Rechten auch auf Inhalte zuzugreifen, auf die ein Benutzer sonst keine Rechte hat, muss zusätzlich der Schritt über die URL: _layouts/15/appinv.aspx ausgeführt werden (ebenfalls im verlinkten Artikel beschrieben.
Nach der Behebung im Flow ging es wieder über diesen Schritt hinaus, allerdings quittiert mit
Item Not Found
Dessen Ursache kam nun daher, dass der Flow zwar wieder eine gültige Client Id und secret hat, allerdings die Registrierung der Full Control Rechte per /appinv.aspx ca. einen halben Tag in Anspruch genommen haben bis diese übernommen wurden.
Zusammenfassung
Ich werde weiter beobachten, ob nun alle in SharePoint generieren Client Ids und secrets nach einer gewissen Zeit ablaufen und wie man dagegen wirken kann. Als mögliche Lösung, kann man durchaus noch ausprobieren, ob die App direkt als Enterprise Application erzeugt werden kann (wie oben beschrieben), und die dort generierte Client ID/secret (mit unbeschränkter Laufzeit) verwendet werden kann. Womöglich muss dann noch die Berechtigung in der Enterprise Application angepasst werden, damit diese auf SharePoint zugreifen kann. Möglicherweise auch die Seite /appinv.aspx.
Laufen nun alle App Registrierungen aus SharePoint Online automatisch nach 1-2 Jahren ab?