Problembehandlung bei Fehlermeldungen für Einmaliges Anmelden (Single Sign-On, SSO)
Dieser Artikel enthält Hinweise zur Behandlung von Problemen mit einmaligem Anmelden (Single Sign-On, SSO) in Office-Add-Ins und dazu, wie Sie Ihr SSO-fähiges Add-In so entwickeln können, dass besondere Bedingungen oder Fehler zuverlässig behoben werden.
Hinweis
Die Single Sign-On-API wird derzeit für Word, Excel, Outlook und PowerPoint unterstützt. Weitere Informationen dazu, wo die Single Sign-On-API derzeit unterstützt wird, finden Sie unter Identity-API-Anforderungssätze. Wenn Sie mit einem Outlook-Add-In arbeiten, müssen Sie die moderne Authentifizierung für den Microsoft 365-Mandanten aktivieren. Informationen dazu finden Sie unter Aktivieren oder Deaktivieren der modernen Authentifizierung für Outlook in Exchange Online.
Debugging-Tools
Es wird dringend empfohlen, dass Sie beim Entwickeln ein Tool verwenden, das die HTTP-Anforderungen von und die Antworten an den Webdienst des Add-Ins abfangen kann. Einige der beliebtesten sind:
- Fiddler: 10 Tage kostenlos (Dokumentation)
- Charles: 30 Tage lang kostenlos. (Dokumentation)
- Anfrage: Kostenloser Basisservice. (Dokumentation)
Ursachen und Behandlung von Fehlern bei getAccessToken
Beispiele für die in diesem Abschnitt beschriebene Fehlerbehandlung finden Sie unter:
13000
Die getAccessToken-API wird vom Add-In oder der Office-Version nicht unterstützt.
- Die Version von Office unterstützt SSO nicht. Die erforderliche Version ist ein Microsoft 365-Abonnement in jedem monatlichen Kanal.
- Dem Add-In-Manifest fehlt der korrekte WebApplicationInfo-Abschnitt.
Das Add-in sollte auf diese Fehler reagieren, indem es auf ein alternatives System zur Benutzerauthentifizierung zurückgreift. Weitere Informationen finden Sie unter Anforderungen und bewährte Methoden.
13001
Der Benutzer ist nicht bei Office angemeldet. In den meisten Szenarien sollten Sie verhindern, dass dieser Fehler angezeigt wird, indem Sie die Option allowSignInPrompt: true
im AuthOptions
-Parameter übergeben.
Möglicherweise gibt es aber Ausnahmen. So möchten Sie beispielsweise, dass das Add-In mit Features geöffnet wird, die einen angemeldeten Benutzer erfordern; aber nur, wenn der Benutzer bereits bei Office angemeldet ist. Wenn der Benutzer nicht angemeldet ist, soll das Add-In mit einem alternativen Satz von Features geöffnet werden, für die es nicht erforderlich ist, dass der Benutzer angemeldet ist. In diesem Fall ruft die Logik, die ausgeführt wird, wenn das Add-In gestartet wird, getAccessToken
ohne allowSignInPrompt: true
auf. Verwenden Sie den 13001-Fehler als Kennzeichen, um das Add-In anzuweisen, die alternative Gruppe von Features darzustellen.
Eine weitere Option besteht darin, dass das Add-In auf 13001-Fehler reagiert, indem es auf ein alternatives System zur Benutzerauthentifizierung zurückgreift. Dadurch wird der Benutzer bei AAD, aber nicht bei Office angemeldet.
Dieser Fehler tritt in der Regel nicht in Office im Web auf. Wenn das Cookie des Benutzers abläuft, gibt Office im Web den Fehler 13006 zurück. Wenn ein Benutzer jedoch von Firefox auf Outlook im Web mit aktiviertem erweiterten Nachverfolgungsschutz zugreift, tritt der Fehler 13001 auf.
13002
Der Benutzer hat die Anmeldung oder die Erteilung seiner Zustimmung abgebrochen; z. B. durch Klicken auf Abbrechen im Zustimmungsdialogfeld.
- Wenn Ihr Add-In Funktionen bereitstellt, für die der Benutzer nicht angemeldet sein (oder seine Zustimmung abgegeben haben) muss, sollte Ihr Code diesen Fehler abfangen und ermöglichen, dass das Add-In weiterhin ausgeführt wird.
- Wenn das Add-In einen angemeldeten Benutzer erfordert, der die Zustimmung erteilt hat, sollte im Code eine Anmeldeschaltfläche angezeigt werden.
13003
Benutzertyp nicht unterstützt. Der Benutzer ist nicht mit einem gültigen Microsoft-Konto oder Microsoft 365 Education- oder Geschäftskonto bei Office angemeldet. Dies kann passieren, wenn Office beispielsweise mit einem lokalen Domänenkonto ausgeführt wird. Der Code sollte auf ein alternatives System zur Benutzerauthentifizierung zurückgreifen. In Outlook kann dieser Fehler auch auftreten, wenn die moderne Authentifizierung für den Mandanten des Benutzers in Exchange Online deaktiviert ist. Weitere Informationen finden Sie unter Anforderungen und bewährte Methoden.
13004
Ungültige Ressource. (Dieser Fehler sollte nur in der Entwicklung auftreten.) Das Add-In-Manifest wurde nicht ordnungsgemäß konfiguriert. Aktualisieren Sie das Manifest. Weitere Informationen finden Sie unter Validieren eines Office-Add-In-Manifests. Das häufigste Problem besteht darin, dass das <Resource-Element> (im <WebApplicationInfo-Element> ) über eine Domäne verfügt, die nicht mit der Domäne des Add-Ins übereinstimmt. Obwohl der Protokollteil des Ressourcewerts „api“ statt „https“ lauten sollte, müssen alle anderen Teile des Domänennamens (inklusive Port, wenn vorhanden) mit denen des Add-Ins übereinstimmen.
13005
Ungültige Gewährung. Dies bedeutet normalerweise, dass Office nicht vorab für den Webdienst des Add-Ins autorisiert wurde. Weitere Informationen finden Sie unter Erstellen der Dienstanwendung und Registrieren eines Office-Add-Ins, das einmaliges Anmelden (Single Sign-On, SSO) mit dem Microsoft Identity Platform verwendet. Dies auch kann passieren, wenn der Benutzer Ihrer Dienstanwendung keine Berechtigungen für profile
erteilt oder seine Zustimmung zurückgezogen hat. Der Code sollte auf ein alternatives System zur Benutzerauthentifizierung zurückgreifen.
Eine weitere mögliche Ursache während der Entwicklung ist, dass das Add-In mit Internet Explorer verwendet wird und Sie ein selbstsigniertes Zertifikat verwenden. (Informationen dazu, welcher Browser oder welche Webansicht vom Add-In verwendet wird, finden Sie unter Browser und Webview-Steuerelemente, die von Office-Add-Ins verwendet werden.)
13006
Clientfehler. Dieser Fehler wird nur in Office im Web angezeigt. Der Code sollte darauf hinweisen, dass der Benutzer sich abmeldet und dann die Office-Browsersitzung neu startet.
13007
Die Office-Anwendung konnte kein Zugriffstoken für den Webdienst des Add-Ins abrufen.
- Wenn dieser Fehler bei der Entwicklung auftritt, achten Sie darauf, dass Ihre Add-In-Registrierung und das Add-In-Manifest die
profile
-Berechtigung (und dieopenid
-Berechtigung, wenn Sie MSAL.NET verwenden) angeben. Weitere Informationen finden Sie unter Registrieren eines Office-Add-Ins, das einmaliges Anmelden (Single Sign-On, SSO) mit dem Microsoft Identity Platform verwendet. - In der Produktion kann ein Kontokonflikt diesen Fehler verursachen. Wenn der Benutzer beispielsweise versucht, sich mit einem persönlichen Microsoft-Konto (MSA) anzumelden, wenn ein Geschäfts-, Schul- oder Unikonto erwartet wurde. In diesen Fällen sollte Ihr Code auf ein alternatives System der Benutzerauthentifizierung zurückgreifen. Weitere Informationen zu Kontotypen finden Sie unter Identitäts- und Kontotypen für Apps mit und mehreren Mandanten.
13008
Der Benutzer hat einen Vorgang ausgelöst, der getAccessToken
aufruft, bevor ein vorheriger Aufruf von getAccessToken
abgeschlossen wurde. Dieser Fehler wird nur in Office im Web angezeigt. Ihr Code sollte den Benutzer auffordern, den Vorgang zu wiederholen, nachdem der vorherige Vorgang abgeschlossen wurde.
13010
Der Benutzer führt das Add-In in Office in Microsoft Edge aus. Die Microsoft 365-Domäne des Benutzers und die login.microsoftonline.com
Domäne befinden sich in den Browsereinstellungen in anderen Sicherheitszonen. Dieser Fehler wird nur in Office im Web angezeigt. Wenn dieser Fehler zurückgegeben wird, wurde dem Benutzer bereits ein Fehler mit den entsprechenden Erläuterungen und einem Link zu einer Seite angezeigt, auf der das Ändern der Zonenkonfiguration erklärt wird. Wenn Ihr Add-In Funktionen bereitstellt, für die der Benutzer nicht angemeldet sein muss, sollte Ihr Code diesen Fehler abfangen und ermöglichen, dass das Add-In weiterhin ausgeführt wird.
13012
Es gibt mehrere mögliche Ursachen.
- Das Add-In wird auf einer Plattform ausgeführt, die die
getAccessToken
-API nicht unterstützt. Beispielsweise wird dies auf dem iPad nicht unterstützt. Siehe auch Identitäts-API-Anforderungssätze. - Das Office-Dokument wurde über die Registerkarte Dateien eines Teams-Kanals mit der Option In Teams bearbeiten im Dropdownmenü Öffnen geöffnet. Die
getAccessToken
API wird in diesem Szenario nicht unterstützt. - Die Option
forMSGraphAccess
wurde beim Aufruf vongetAccessToken
übergeben, und der Benutzer hat das Add-In von AppSource abgerufen. In diesem Szenario hat der Mandantenadministrator dem Add-In für die Microsoft Graph-Bereiche (Berechtigungen), die dieses benötigt, keine Zustimmung erteilt. Wenn SiegetAccessToken
mitallowConsentPrompt
zurückrufen, wird das Problem dadurch nicht gelöst, da Office den Benutzer auffordert, seine Zustimmung nur für den AADprofile
-Bereich zu erteilen.
Der Code sollte auf ein alternatives System zur Benutzerauthentifizierung zurückgreifen.
In der Entwicklung wird das Add-In in Outlook quergeladen, und die Option forMSGraphAccess
wurde im Aufruf von getAccessToken
übergeben.
13013
Der getAccessToken
wurde in kurzer Zeit zu oft aufgerufen, sodass Office den letzten Aufruf gedrosselt hat. Dies wird in der Regel durch eine Endlosschleife von Aufrufen der -Methode verursacht. Es gibt Szenarien, in denen ein Rückruf der Methode ratsam ist. Ihr Code sollte jedoch einen Zähler oder eine Flagvariable verwenden, um sicherzustellen, dass die Methode nicht wiederholt zurückgerufen wird. Wenn derselbe "Wiederholungscodepfad" erneut ausgeführt wird, sollte der Code auf ein alternatives System der Benutzerauthentifizierung zurückgreifen. Ein Codebeispiel finden Sie unter Verwendung der retryGetAccessToken
Variablen in HomeES6.js oder ssoAuthES6.js.
50001
Dieser Fehler (der nicht spezifisch für getAccessToken
ist) kann darauf hindeuten, dass der Browser eine alte Kopie der office.js Dateien zwischengespeichert hat. Löschen Sie bei der Entwicklung den Cache des Browsers. Eine weitere Möglichkeit besteht darin, dass die Office-Version nicht aktuell genug ist, um einmaliges Anmelden zu unterstützen. Unter Windows ist die Mindestversion Version 1911 (Build 12215.20006). Auf dem Mac ist dies Version 16.32 (19102902).
In einem Production-Add-Inn sollte das Add-in auf diese Fehler reagieren, indem es auf ein alternatives System zur Benutzerauthentifizierung zurückgreift. Weitere Informationen finden Sie unter Anforderungen und bewährte Methoden.
Fehler auf der Serverseite von Azure Active Directory
Beispiele für die in diesem Abschnitt beschriebene Fehlerbehandlung finden Sie unter:
Fehler beim bedingten Zugriff/bei der multifaktoriellen Authentifizierung
In bestimmten Identitätskonfigurationen in AAD und Microsoft 365 ist es möglich, dass für einige Ressourcen, auf die mit Microsoft Graph zugegriffen werden kann, die mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) erforderlich ist, auch wenn der Microsoft 365-Mandanten des Benutzers dies nicht tut. Wenn AAD eine Anforderung für ein Token für die MFA-geschützte Ressource über den Im-Auftrag-von-Fluss empfängt, wird an den Webdienst des Add-Ins eine JSON-Nachricht zurückgegeben, die eine claims
-Eigenschaft enthält. Die claims-Eigenschaft hat keine Informationen darüber, welche weiteren Authentifizierungsfaktoren erforderlich sind.
In Ihrem Code sollte eine Prüfung auf diese claims
-Eigenschaft erfolgen. Abhängig von der Architektur des Add-Ins können Sie auf der Clientseite eine Prüfung auf diese Eigenschaft durchführen oder auf der Serverseite; dann müssen Sie sie an den Client weiterleiten. Sie benötigen diese Informationen im Client, da Office die Authentifizierung für SSO-Add-Ins verarbeitet. Wenn Sie diese Informationen von der Serverweite weiterleiten, kann die Nachricht an den Client entweder ein Fehler (z. B. 500 Server Error
oder 401 Unauthorized
) oder im Textkörper einer Erfolgsantwort sein (z. B. 200 OK
). In beiden Fällen sollte der Rückruf (Fehler oder Erfolg) des clientseitigen AJAX-Aufrufs Ihres Codes für die Web-API des Add-Ins diese Antwort testen.
Unabhängig von Ihrer Architektur sollte Ihr Code die Option authChallenge: CLAIMS-STRING-HERE
im options
Parameter abrufen getAccessToken
und übergeben, wenn der Anspruchswert von AAD gesendet wurde. Wenn AAD diese Zeichenfolge sieht, fordert er den Benutzer zur Eingabe der zusätzlichen Faktoren auf und gibt dann ein neues Zugriffstoken zurück, das im On-Behalf-of-Flow akzeptiert wird.
Fehler aufgrund fehlender Zustimmung
Wenn AAD nicht über einen Datensatz verfügt, dass die Zustimmung (zur Microsoft Graph-Ressource) dem Add-In vom Benutzer (oder Mandantenadministrator) gewährt wurde, sendet AAD eine Fehlermeldung an den Webdienst. Ihr Code muss den Client anweisen (z. B. im Textkörper einer 403 Forbidden
-Antwort).
Wenn das Add-In Microsoft Graph-Bereiche benötigt, die nur von einem Administrator zugewiesen werden können, sollte Ihr Code einen Fehler auslösen. Wenn die einzigen Bereiche, die benötigt werden, vom Benutzer zugewiesen werden können, sollte Ihr Code auf ein alternatives System zur Benutzerauthentifizierung zurückgreifen.
Fehler bei ungültigen oder fehlenden Bereichen (Berechtigungen)
Diese Art von Fehler sollte nur in der Entwicklung zu sehen sein.
- Ihr serverseitiger Code sollte eine
403 Forbidden
-Antwort an den Client senden, der den Fehler in der Konsole oder in einem Protokoll protokollieren sollte. - Vergewissern Sie sich, dass im Abschnitt Bereiche Ihres Add-In-Manifests alle erforderlichen Berechtigungen angegeben werden. Und achten Sie unbedingt darauf, dass die Registrierung des Webdiensts des Add-Ins dieselben Berechtigungen angibt. Führen Sie auch eine Rechtschreibprüfung durch. Weitere Informationen finden Sie unter Registrieren eines Office-Add-Ins, das einmaliges Anmelden (Single Sign-On, SSO) mit dem Microsoft Identity Platform verwendet.
Fehler "Ungültige Zielgruppe" im Zugriffstoken für Microsoft Graph
Ihr serverseitiger Code sollte eine 403 Forbidden
-Antwort an den Client senden, der eine aussagekräftige Nachricht für den Benutzer anzeigt und auch den Fehler möglicherweise in der Konsole oder in einem Protokoll protokolliert.
Office Add-ins