Bewährte Methoden und Empfehlungen für Microsoft Identity Platform

Dieser Artikel enthält bewährte Methoden, Empfehlungen und häufige Fehler im Zusammenhang mit der Microsoft Identity Platform-Integration. Die Prüfliste unterstützt Sie bei einer hochwertigen und sicheren Integration. Überprüfen Sie diese Liste in regelmäßigen Abständen, um die Qualität und Sicherheit der Identity Platform-Integration Ihrer App zu gewährleisten. Die Checkliste ist nicht auf die Überprüfung der gesamten Anwendung ausgerichtet. Der Inhalt der Checkliste kann jederzeit geändert werden, während wir Verbesserungen an der Plattform vornehmen.

Machen Sie sich zum Einstieg anhand der Dokumentation zu Microsoft Identity Platform unter anderem mit Authentifizierungsgrundlagen und mit Anwendungsszenarien in Microsoft Identity Platform vertraut.

Stellen Sie anhand der folgenden Checkliste sicher, dass Ihre Anwendung effektiv in Microsoft Identity Platform integriert wird.

Tipp

Der Integrationsassistent im Azure-Portal kann Ihnen dabei helfen, viele dieser bewährten Methoden und Empfehlungen anzuwenden. Wählen Sie im Azure-Portal eine der App-Registrierungen und dann das Menüelement Integrations-Assistent aus, um mit dem Assistenten zu beginnen.

Grundlagen

Kontrollkästchen Lesen Sie sich die Richtlinien für die Microsoft-Plattform aufmerksam durch. Stellen Sie sicher, dass Ihre Anwendung den dargelegten Bedingungen entspricht, weil diese für den Schutz der Benutzer und der Plattform entwickelt wurden.

Besitz

Kontrollkästchen Stellen Sie sicher, dass die Informationen, die dem zur Registrierung und Verwaltung von Apps verwendeten Konto zugeordnet sind, auf dem neuesten Stand sind.

Branding

Kontrollkästchen Halten Sie sich an die Brandingrichtlinien für Anwendungen.

Kontrollkästchen Geben Sie einen aussagekräftigen Namen und ein Logo für Ihre Anwendung ein. Diese Informationen werden in der Zustimmungsaufforderung Ihrer Anwendung angezeigt. Stellen Sie sicher, dass Name und Logo für Ihr Unternehmen/Produkt repräsentativ sind, damit Benutzer fundierte Entscheidungen treffen können. Stellen Sie sicher, dass Sie keine Markenrechte verletzen.

Datenschutz

Kontrollkästchen Geben Sie Links zu den Nutzungsbedingungen und Datenschutzbestimmungen Ihrer App an.

Sicherheit

Kontrollkästchen Verwalten Sie Ihre Umleitungs-URIs:

  • Verwalten Sie den Besitz all Ihrer Umleitungs-URIs, und halten Sie die zugehörigen DNS-Einträge auf dem neuesten Stand.
  • Verwenden Sie keine Platzhalter (*) in Ihren URIs.
  • Stellen Sie für Web-Apps sicher, dass alle URIs sicher und verschlüsselt sind (z.B. mithilfe von HTTPS-Schemas).
  • Verwenden Sie für öffentliche Clients ggf. plattformspezifische Umleitungs-URIs (vor allem für iOS und Android). Verwenden Sie andernfalls Umleitungs-URIs mit hohem Zufallsfaktor, um Konflikte beim Rückruf an Ihre App zu vermeiden.
  • Wenn Ihre App von einem isolierten Web-Agent aus verwendet wird, können Sie https://login.microsoftonline.com/common/oauth2/nativeclient verwenden.
  • Überprüfen und kürzen Sie in regelmäßigen Abständen alle nicht verwendeten oder nicht benötigten Umleitungs-URIs.

Kontrollkästchen Wenn Ihre App in einem Verzeichnis registriert ist, minimieren Sie die Liste der Besitzer von App-Registrierungen, und überwachen Sie sie manuell.

Kontrollkästchen Sie sollten die Unterstützung für den Flow zur impliziten OAuth2-Genehmigung nur dann aktivieren, wenn dies explizit erforderlich ist. Informationen zu einem gültigen Szenario finden Sie hier.

Kontrollkästchen Lassen Sie die Kombination „Benutzername/Kennwort“ hinter sich. Verwenden Sie keinen Flow für Ressourcenbesitzer-Kennwortanmeldeinformationen (ROPC), in dem die Kennwörter von Benutzern direkt verarbeitet werden. Dieser Flow erfordert ein hohes Maß an Vertrauen und die Freigabe von Benutzeranmeldeinformationen. Er darf nur dann verwendet werden, wenn keine anderen, sichereren Flows genutzt werden können. Bei einigen Szenarien (z.B. DevOps) ist zu beachten, dass dieser Flow zwar weiterhin erforderlich ist, seine Verwendung jedoch Einschränkungen für Ihre Anwendung bedeutet. Weitere moderne Ansätze finden Sie unter Authentifizierungsflows und Anwendungsszenarien.

Kontrollkästchen Schützen und verwalten Sie Ihre vertraulichen App-Anmeldeinformationen für Web-Apps, Web-APIs und Daemon-Apps. Verwenden Sie Zertifikatanmeldeinformationen, keine Kennwortanmeldeinformationen (Clientgeheimnisse). Wenn Sie eine Kennwortanmeldeinformation verwenden müssen, legen Sie diese nicht manuell fest. Speichern Sie Anmeldeinformationen nicht im Code oder in der Konfiguration, und lassen Sie sie niemals von Personen bearbeiten. Verwenden Sie möglichst verwaltete Identitäten für Azure-Ressourcen oder Azure Key Vault zum Speichern und regelmäßigen Rotieren Ihrer Anmeldeinformationen.

Kontrollkästchen Stellen Sie sicher, dass Ihre Anwendung den Ansatz der geringsten Rechte verfolgt. Fordern Sie nur Berechtigungen an, die für Ihre Anwendung unbedingt erforderlich sind, und nur dann, wenn sie benötigt werden. Informieren Sie sich über die verschiedenen Berechtigungstypen. Anwendungsberechtigungen sollten nur bei Bedarf verwendet werden. Verwenden Sie nach Möglichkeit delegierte Berechtigungen. Eine vollständige Liste der Microsoft Graph-Berechtigungen finden Sie in dieser Berechtigungsreferenz.

Kontrollkästchen Wenn Sie eine API über Microsoft Identity Platform schützen, erwägen Sie sorgfältig, welche Berechtigungen darin verfügbar gemacht werden sollen. Überlegen Sie sich die richtige Granularität für Ihre Lösung und entscheiden Sie, welche Berechtigungen die Einwilligung eines Administrators erfordern. Prüfen Sie auf erwartete Berechtigungen in den eingehenden Token, bevor Sie Autorisierungsentscheidungen treffen.

Implementierung

Kontrollkästchen Verwenden Sie moderne Authentifizierungslösungen (OAuth 2.0, OpenID Connect) zur sicheren Benutzeranmeldung.

Kontrollkästchen Programmieren Sie nicht direkt für Protokolle wie OAuth 2.0 und OpenID. Nutzen Sie stattdessen die Microsoft-Authentifizierungsbibliothek (Microsoft Authentication Library, MSAL). Die MSAL-Bibliotheken schließen Sicherheitsprotokolle sicher in eine benutzerfreundliche Bibliothek ein und bieten integrierte Unterstützung für Szenarien mit bedingtem Zugriff, geräteweites einmaliges Anmelden (Single Sign-On, SSO) sowie integrierte Unterstützung für die Tokenzwischenspeicherung. Weitere Informationen finden Sie in der Liste der von Microsoft unterstützten Clientbibliotheken. Wenn Sie Code für die Authentifizierungsprotokolle schreiben müssen, verwenden Sie eine Entwicklungsmethodik wie Microsoft SDL. Achten Sie auf die Sicherheitsüberlegungen in den Standardspezifikationen für jedes Protokoll.

Kontrollkästchen Migrieren Sie vorhandene Apps von der Azure Active Directory-Authentifizierungsbibliothek (ADAL) zur Microsoft Authentication Library. MSAL ist die neueste Identity Platform-Lösung von Microsoft und ADAL vorzuziehen. Sie ist für .NET, JavaScript, Android, iOS und macOS verfügbar und befindet sich für Python und Java momentan in der öffentlichen Vorschau. Ausführlichere Informationen zur App-Migration finden Sie in den Artikeln für ADAL.NET, ADAL.js und ADAL.NET/iOS-Broker.

Kontrollkästchen Konfigurieren Sie für mobile Apps jede Plattform unter Verwendung der Anwendungsregistrierung. Für Ihre App muss ein Broker-Umleitungs-URI konfiguriert werden, damit sie Microsoft Authenticator oder das Microsoft-Unternehmensportal für einmaliges Anmelden nutzen kann. Dadurch kann Microsoft nach der Authentifizierung die Kontrolle an Ihre Anwendung zurückgeben. Beim Konfigurieren der einzelnen Plattformen führt Sie die App-Registrierung durch den Prozess. Verwenden Sie die Schnellstartanleitung, um ein Beispiel herunterzuladen. Verwenden Sie unter iOS nach Möglichkeit Broker und System WebView.

Kontrollkästchen Halten Sie in Web-Apps oder Web-APIs jeweils einen Tokencache pro Konto bereit. Bei Web-Apps sollte der Tokencache durch die Konto-ID mit einem Schlüssel versehen werden. Bei Web-APIs sollte das Konto durch den Hash des Tokens, das zum Aufrufen der API verwendet wird, mit einem Schlüssel versehen werden. MSAL.NET bietet eine benutzerdefinierte Tokencache-Serialisierung auf der .NET Framework- und der .NET Core-Unterplattform. Aus Sicherheits- und Leistungsgründen wird empfohlen, jeweils einen Cache pro Benutzer zu serialisieren. Weitere Informationen finden Sie unter Tokencache für eine Web-App (vertrauliche Clientanwendung).

Kontrollkästchen Wenn die von Ihrer App benötigten Daten über Microsoft Graph verfügbar sind, fordern Sie Berechtigungen für diese Daten über den Microsoft Graph-Endpunkt statt über die einzelne API an.

Kontrollkästchen Betrachten Sie nicht den Wert des Zugriffstoken, und versuchen Sie nicht, ihn als Client zu analysieren. Werte und Formate können ohne Vorwarnung geändert oder sogar verschlüsselt werden. Verwenden Sie daher immer den id_token-Wert, wenn der Client Informationen zum Benutzer erhalten soll, oder rufen Sie Microsoft Graph auf. Nur Web-APIs sollten Zugriffstoken analysieren (da über sie das Format definiert wird und die Verschlüsselungsschlüssel festgelegt werden).

Endbenutzererfahrung

KontrollkästchenMachen Sie sich mit der Genehmigungsoberfläche vertraut, und konfigurieren Sie die Bestandteile der App-Genehmigungsaufforderung so, dass Endbenutzer und Administratoren genügend Informationen erhalten, um über die Vertrauenswürdigkeit Ihrer App zu entscheiden.

Kontrollkästchen Minimieren Sie, wie häufig ein Benutzer bei Verwendung Ihrer App Anmeldeinformationen eingeben muss, indem vor interaktiven Flows versucht wird, die automatische Authentifizierung (automatischer Tokenabruf) durchzuführen.

Kontrollkästchen Verwenden Sie nicht „prompt=consent“ für jede Anmeldung. Verwenden Sie „prompt=consent“ nur dann, wenn Sie festgestellt haben, dass für die zusätzlichen Berechtigungen eine Einwilligung erforderlich ist (z.B., wenn Sie erforderliche Berechtigungen Ihrer App geändert haben).

Kontrollkästchen Reichern Sie Ihre Anwendung ggf. mit Benutzerdaten an. Eine einfache Möglichkeit dazu besteht in der Verwendung der Microsoft Graph-API. Das Tool Graph-Explorer kann Sie bei den ersten Schritten unterstützen.

Kontrollkästchen Registrieren Sie den vollständigen Satz an Berechtigungen, die für Ihre App erforderlich sind, damit Administratoren die Genehmigung für ihren Mandanten problemlos erteilen können. Verwenden Sie die inkrementelle Einwilligung zur Laufzeit. So können Benutzer nachvollziehen, warum Ihre App Berechtigungen anfordert, die Besorgnis oder Verwirrung hervorrufen können, wenn sie gleich beim ersten Start angefordert werden.

Kontrollkästchen Implementieren Sie eine bereinigte Umgebung für einmaliges Anmelden. Dies ist eine Datenschutz- und Sicherheitsanforderung, die eine gute Benutzeroberfläche ausmacht.

Testen

Kontrollkästchen Testen Sie auf Richtlinien für bedingten Zugriff, die die Verwendung Ihrer Anwendung beeinträchtigen können.

Kontrollkästchen Testen Sie Ihre Anwendung mit allen möglichen Konten, die Sie unterstützen möchten (z. B. Geschäfts-, Schul- oder Unikonten, persönliche Microsoft-Konten, Kinderkonten und unabhängige Konten).

Zusätzliche Ressourcen

Hier erhalten Sie detaillierte Informationen zu v2.0: