Blog

Häufige Probleme bei der Arbeit mit SharePoint Framework API-Berechtigungen

11 min read
11 min read

SharePoint Framework API-Berechtigungen vereinfachen die Verbindung zu mit Azure AD gesicherten APIs erheblich. Es gibt jedoch ein paar Dinge, auf die Sie achten müssen, sonst sitzen Sie fest.

Einfache Verbindung zu mit Azure AD gesicherten APIs

Authentifizierung ist schwierig, aber Sicherheit ist notwendig, damit die Daten Ihres Unternehmens sicher bleiben. Gleichzeitig müssen Sie mehr Zeit als nötig aufwenden, um eine Verbindung zu den APIs Ihres Unternehmens herzustellen. Sie müssen entscheiden, welchen OAuth-Flow Sie benötigen, welche Art von Azure AD-Anwendung Sie erstellen möchten, wie Sie das Zugriffstoken sicher speichern können, ganz zu schweigen davon, dass Sie sicherstellen müssen, dass die gesamte Einrichtung mit mehreren Webparts auf derselben Seite funktioniert, die gleichzeitig Zugriffstoken anfordern.

Für den Aufbau von SharePoint Framework-Lösungen vereinfacht Microsoft die Arbeit mit APIs, die mit Azure AD gesichert sind, durch den AadHttpClient. Der AadHttpClient abstrahiert die Beschaffung und Verwaltung von OAuth-Zugriffstoken, sodass Sie sich auf die Entwicklung Ihrer Lösung konzentrieren können. Es funktioniert einfach.

Häufige Fallstricke bei der Arbeit mit Verbindungen zu APIs, die mit Azure AD in SharePoint Framework-Lösungen gesichert sind

Der AadHttpClient ist von unschätzbarem Wert und seine Verwendung spart Ihnen viel Zeit. Dennoch gibt es eine Reihe von Dingen, die Sie beachten sollten, damit Sie bei der Verwendung in Ihren Lösungen nicht in Schwierigkeiten geraten. Hier sind ein paar von ihnen.

Unbekannte Azure AD-Anwendung

Nach dem Laden der Seite zeigt einer der Webparts oder Erweiterungen einen Fehler ähnlich dem folgenden an:

AADSTS50001: Die Anwendung mit dem Namen af71d8fc-bcb5-4e89-9415-71c8a1f1f585 wurde nicht in dem Tenant mit dem Namen d4a29dc3-64ad-425a-971e-0acdea1bfa30 gefunden. Dies kann passieren, wenn die Anwendung nicht vom Administrator des Tenants installiert oder von einem Benutzer im Tenant genehmigt wurde. Möglicherweise haben Sie Ihre Authentifizierungsanforderung an den falschen Mandanten gesendet.

Dieser Fehler tritt auf, wenn Ihre API mit einer Azure AD-Anwendung gesichert ist, die in einem anderen Azure AD registriert ist als die, die von Ihrem Office 365-Tenant verwendet wird. Diese Anwendung wurde vom Administrator nicht für die Verwendung in Ihrer Organisation freigegeben.

Um dieses Problem zu beheben, müssen Sie den Zustimmungsprozess abschließen. Sie können dies im Webbrowser tun, indem Sie zur API-URL navigieren, sich mit Ihrem Office 365-Konto anmelden und der Verwendung der API in Ihrer Organisation zustimmen. Sie können bestätigen, dass der Administrator der Verwendung der Anwendung im Azure-Portal zugestimmt hat, indem Sie zu Azure AD Enterprise-Anwendungen navigieren.

Unzureichende Berechtigungen zum Anzeigen der Seite

Wenn Sie versuchen, der Verwendung einer mit Azure AD gesicherten API in Ihrer Organisation zuzustimmen, erhalten Sie den folgenden Fehler:

Sie haben nicht die Berechtigung, dieses Verzeichnis oder diese Seite anzuzeigen.

Dies ist höchstwahrscheinlich darauf zurückzuführen, dass in Ihrer Organisation bereits eine Azure AD-Anwendung mit derselben App ID URI registriert ist. Sie sollten in der Lage sein, dies zu bestätigen, indem Sie im Azure Portal zu Azure AD Enterprise-Anwendungen navigieren.

Um dieses Problem zu beheben, ändern Sie entweder die App ID URI der Azure AD-Anwendung, die zur Sicherung Ihrer API verwendet wird, oder löschen Sie die alte Anwendung aus dem von Ihrem Office 365-Tenant verwendeten Azure AD.

Ungültige Issuer-URL

Wenn Sie versuchen, der Verwendung der API in Ihrem Tenant zuzustimmen, erhalten Sie den folgenden Fehler:

AADSTS50020: Das Benutzerkonto "admin@contoso.onmicrosoft.com" vom Identitätsanbieter "https://sts.windows.net/d4a49dc3-629d-4d5a-972e-0ac1e3dbfa30/" existiert nicht im Tenant "Contoso Dev" und kann nicht auf die Anwendung "af71d8fc-bcb5-4e39-9425-71c8a2f1d585" in diesem Tenant zugreifen. Das Konto muss zunächst als externer Benutzer im Tenant hinzugefügt werden. Melden Sie sich ab und melden Sie sich erneut mit einem anderen Azure Active Directory-Benutzerkonto an.

Wenn Sie die API mit Azure AD sichern, haben Sie höchstwahrscheinlich den Express-Modus verwendet, um die Azure AD-Anwendung zu erstellen. Infolgedessen konfigurierte Azure AD die Issuer-URL dieser Anwendung auf das Azure AD, in dem die Anwendung registriert ist und das sich von dem Azure AD unterscheidet, das von Ihrem Office 365-Tenant verwendet wird. Infolgedessen lässt Azure AD nicht zu, dass die Anwendung von Konten aus anderen Azure ADs verwendet wird.

Um dieses Problem zu beheben, ändern Sie in der API-Authentifizierungskonfiguration den Azure AD-Konfigurationsmodus auf Erweitert und löschen Sie die Issuer URL.

Azure AD-Anwendung mit Einzelmieter

Wenn Sie versuchen, der Verwendung der API in Ihrem Mandanten zuzustimmen, erhalten Sie den folgenden Fehler:

AADSTS700016: Anwendung mit dem Bezeichner 'af71d8fc-bcb5-5e89-9425-71c8a1f1f585' wurde nicht im Verzeichnis 'd4a79dc3-629d-4f5a-87be-0ac0eadbfa30' gefunden. Dies kann passieren, wenn die Anwendung nicht vom Administrator des Mandanten installiert oder von einem Benutzer im Mandanten genehmigt wurde. Möglicherweise haben Sie Ihre Authentifizierungsanfrage an den falschen Mandanten gesendet.

Die IDs sind natürlich unterschiedlich und spezifisch für Ihr Azure AD und Ihre Anwendung. Dieser Fehler wird dadurch verursacht, dass Sie versuchen, die API im Kontext Ihres Office 365-Tenants zu verwenden, während die Azure AD-Anwendung, die zur Sicherung der API verwendet wird, als Single-Tenant-Anwendung in einem anderen Azure AD als dem von Office 365 verwendeten registriert ist.

Um dieses Problem zu beheben, ändern Sie die Anwendung in Ihren Registrierungseinstellungen in eine mandantenfähige Anwendung.

Dienstprinzipal nicht gefunden

Wenn Sie versuchen, eine API-Berechtigung zu erteilen oder eine API-Berechtigungsanfrage zu genehmigen, erhalten Sie den folgenden Fehler:

Ein Dienstprinzipal mit dem Namen contoso-api konnte nicht gefunden werden.

oder diesen:

Die angegebene clientId wurde nicht gefunden.

Sie versuchen, API-Berechtigungen für eine Azure AD-Anwendung zu erteilen, die in einem anderen Azure AD als dem von Ihrem Office 365-Tenant verwendeten registriert ist, während der Administrator der Verwendung der Anwendung noch nicht zugestimmt hat.

Um dieses Problem zu beheben, müssen Sie den Zustimmungsfluss abschließen. Sie können dies im Webbrowser tun, indem Sie zur API-URL navigieren, sich mit Ihrem Office 365-Konto anmelden und der Verwendung der API in Ihrer Organisation zustimmen.

Bereich user_impersonation nicht gefunden

Wenn Sie versuchen, API-Berechtigungen zu erteilen, erhalten Sie den folgenden Fehler:

Eine OAuth-Berechtigung mit dem Bereich user_impersonation konnte nicht gefunden werden.

Dieser Fehler tritt häufig auf, wenn versucht wird, Berechtigungen für eine Azure AD-Anwendung zu erteilen, die in einem anderen Azure AD registriert ist und gelöscht wurde. Leider werden durch das Löschen der Azure AD-Anwendung in ihrem ursprünglichen AD die bestehenden Verweise nicht entfernt, so dass die Azure AD-Anwendung in der Liste der Anwendungen in Ihrem Office 365-Tenant zwar noch angezeigt wird, Sie ihr aber keine Berechtigungen erteilen können.

Um dieses Problem zu beheben, erstellen Sie eine neue Azure AD-Anwendung und verwenden Sie diese, um Ihre API zu sichern.

API-Berechtigungen werden nicht gewährt

Nach dem Laden der Seite zeigt einer der Webparts oder Erweiterungen einen Fehler ähnlich dem folgenden an:

AADSTS65001: Der Benutzer oder Administrator hat nicht zugestimmt, die Anwendung mit der ID 'e6029062-a9cb-461d-924d-c3ab57a9c449' namens 'SharePoint Online Client Extensibility Web Application Principal' zu verwenden. Senden Sie eine interaktive Autorisierungsanforderung für diesen Benutzer und diese Ressource.

Dieser häufige Fehler wird dadurch verursacht, dass die für die Komponente erforderlichen API-Berechtigungen auf der API-Verwaltungsseite nicht erteilt werden. Sie sollten überprüfen, welche Berechtigungen und für welche APIs Ihre Komponente benötigt und ob diese in der API-Verwaltung gewährt werden.

Unzureichende CORS-Konfiguration

Nach dem Laden der Seite zeigt eine Ihrer Komponenten einen Fehler ähnlich dem folgenden an:

NetworkError beim Versuch, eine Ressource abzurufen.

Dieser Fehler wird durch eine unzureichende CORS-Konfiguration für die API verursacht, die Sie aufrufen. Da Ihre Komponente mit der API clientseitig kommuniziert, muss die API die Domäne Ihres SharePoint-Mandanten in ihrer CORS-Konfiguration angeben, sonst wird die Anforderung vom Webbrowser mit dem oben genannten Fehler blockiert.

Um das Problem zu beheben, navigieren Sie zu den CORS-Einstellungen Ihrer Azure-Funktion und fügen Sie Ihre SharePoint Online-Domäne zur Liste der genehmigten Ursprünge hinzu.

Zusammenfassung

SharePoint Framework API-Berechtigungen vereinfachen die Verbindung zu mit Azure AD gesicherten APIs erheblich. Um eine API mit Azure AD erfolgreich zu sichern und mit ihr von einer SharePoint Framework-Lösung aus zu kommunizieren, müssen Sie einige Einstellungen kennen, sonst können Sie die kryptischen Fehlermeldungen nicht entziffern.

Nächste Schritte

Da immer wieder neue Schwachstellen entdeckt werden, ist es wichtig, dass Sie Ihre API-Berechtigungen genau im Auge behalten. Es reicht nicht aus, Ihre SharePoint-Anwendungen und -Umgebung nur einmal zu überprüfen. Regelmäßige Analysen Ihrer Anwendungen helfen Ihnen, Bedrohungen zu entdecken, bevor sie zu einem Problem werden. Rencore vereinfacht dies, so dass Sie sich darauf konzentrieren können, Ihr Unternehmen sicher zu machen.

Testen Sie noch heute unsere kostenlose Risikobewertung und gehen Sie auf Nummer sicher.

Learn more

Dieser Blog-Beitrag wurde ursprünglich auf Waldeks Blog veröffentlicht