Benutzername und Kennwortauthentifizierung

Warning

Der RoPC-Fluss (Resource Owner Password Credential) ist aufgrund von Sicherheitsrisiken für öffentliche Clientanwendungen veraltet. Microsoft empfiehlt die Verwendung eines sichereren Authentifizierungsflusses. Befolgen Sie die offiziellen Anleitungen zum Migrieren von ROPC.

Die folgenden Inhalte gelten für alle MSAL-Bibliotheken, nicht nur MSAL Python.

Microsoft empfiehlt, den Benutzernamen- und Kennwortfluss nicht zu verwenden. In den meisten Szenarien sind sicherere Alternativen verfügbar und empfohlen. Dieser Fluss erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Flow nur, wenn kein anderer Flow verfügbar ist, der mehr Sicherheit bietet. Weitere Informationen dazu, warum Sie die Verwendung dieser Berechtigung vermeiden sollten, finden Sie in Warum Microsoft daran arbeitet, Passwörter der Vergangenheit angehören zu lassen.

Constraints

  • Die Benutzername/Kennwort-Authentifizierung funktioniert konzept- und richtliniengemäß nur für Geschäfts- und Schulkonten, nicht jedoch für Microsoft-Konten (MSA). Die Definition dieser 2 Arten von Konten finden Sie hier.
  • Die Authentifizierung mit Benutzername/Kennwort ist nicht mit bedingtem Zugriff und mehrstufiger Authentifizierung kompatibel, da dies kein interaktiver Fluss ist, hat die Microsoft Identity Platform keine Möglichkeit, ein webbasiertes Dialogfeld für die Interaktion des Endbenutzers darzustellen. Wenn Ihre App in einem Microsoft Entra Mandanten ausgeführt wird, in dem der Mandantenadministrator eine mehrstufige Authentifizierung erfordert (viele Organisationen tun dies), funktioniert dieser Ablauf nicht.
  • Da die Benutzernamenkennwortauthentifizierung ein nicht interaktiver Fluss ist:
    • Der Benutzer Ihrer Anwendung muss zuvor der Verwendung der Anwendung zugestimmt haben.
    • oder der Mandantenadministrator muss zuvor allen Benutzern im Mandanten zugestimmt haben, die Anwendung zu verwenden.
    • Das bedeutet Folgendes:
      • Entweder haben Sie als Entwickler im Azure-Portal selbst auf die Schaltfläche Grant geklickt,
      • oder ein Mandantenadministrator auf die Schaltfläche Administratorzustimmung für {Mandantendomäne} erteilen/widerrufen auf der Registerkarte API-Berechtigungen in der App-Registrierung geklickt hat (siehe Berechtigungen für den Zugriff auf Web-APIs hinzufügen)
      • oder Sie haben benutzern die Möglichkeit gegeben, der Anwendung zuzustimmen (siehe Anfordern einzelner Benutzerzustimmungen)
      • oder Sie haben dem Mandantenadministrator die Möglichkeit gegeben, der Anwendung zuzustimmen (siehe Administratorzustimmung)

Recommendations

Auch wenn Sie sich für die Verwendung der Benutzernamenkennwortauthentifizierung entscheiden, sollten Sie das Kennwort des Endbenutzers nicht beibehalten. Nachdem die anfängliche Authentifizierung des Benutzernamenkennworts erfolgreich war, würde der Tokencache von MSAL gestartet und das Aktualisierungstoken (RT) automatisch zwischengespeichert. Von nun an kann Ihre App einfach MSAL acquire_token_silent() aufrufen, um ein neues Zugriffstoken ohne Benutzernamen und Kennwort zu erhalten.

Konfiguration

Microsoft Identity Platform unterstützt den Benutzernamenkennwortfluss in der öffentlichen Clientanwendung und der vertraulichen Clientanwendung. Wenn Sie Ihre App als öffentliche Clientanwendung konfigurieren müssen, aktivieren Sie die Option unten im Screenshot, um sie zuzulassen.

Einrichtung öffentlicher Apps