Nom d’utilisateur et authentification par mot de passe

Warning

Le flux ROPC (Resource Owner Password Credential) a été déconseillé pour les applications clientes publiques en raison des risques de sécurité. Microsoft recommande d’utiliser un flux d’authentification plus sécurisé. Suivez les instructions officielles sur la migration à partir de ROPC.

Le contenu ci-dessous s’applique à toutes les bibliothèques MSAL, pas seulement à MSAL Python.

Microsoft vous recommande de ne pas utiliser le flux de nom d’utilisateur et de mot de passe. Dans la plupart des scénarios, des alternatives plus sécurisées sont disponibles et recommandées. Ce flux nécessite un degré de confiance très élevé dans l’application et comporte des risques qui ne sont pas présents dans d’autres flux. Utilisez ce flux uniquement lorsqu’aucun autre flux plus sécurisé n’est viable. Pour plus d’informations sur la raison pour laquelle vous souhaitez éviter d’utiliser cette subvention, voir pourquoi Microsoft travaille à rendre les mots de passe une chose du passé.

Contraintes

  • Par conception et stratégie, l’authentification par nom d’utilisateur/mot de passe fonctionne uniquement pour les comptes professionnels et scolaires, mais pas pour les comptes Microsoft (MSA). Consultez la définition de ces 2 types de comptes ici.
  • L’authentification par nom d’utilisateur/mot de passe n’est pas compatible avec l’accès conditionnel et l’authentification multifacteur, car ce n’est pas un flux interactif, l’Plateforme d'identités Microsoft n’a pas la possibilité de présenter une boîte de dialogue basée sur le web pour que l’utilisateur final interagisse. Par conséquent, si votre application s’exécute dans un locataire Microsoft Entra où l’administrateur du locataire nécessite une authentification multifacteur (de nombreuses organisations le font), ce flux ne fonctionnera pas.
  • Étant donné que l’authentification par mot de passe de nom d’utilisateur est un flux non interactif :
    • l’utilisateur de votre application doit avoir précédemment accepté d’utiliser l’application
    • ou l’administrateur du locataire doit avoir préalablement consenti à ce que tous les utilisateurs du locataire utilisent l’application.
    • Cela signifie que :
      • soit, en tant que développeur, vous avez cliqué sur le bouton Autoriser dans le portail Azure pour vous-même,
      • ou un administrateur de locataire a appuyé sur le bouton Accorder/révoquer le consentement de l’administrateur pour {domaine locataire} dans l’onglet Autorisations d’API de l’inscription de l’application (voir Ajouter des autorisations pour accéder aux API web)
      • ou vous avez fourni un moyen aux utilisateurs de donner leur consentement à l’application (voir Demande de consentement individuel de l’utilisateur)
      • ou vous avez fourni un moyen pour l’administrateur du locataire de donner son consentement pour l’application (voir consentement administrateur)

Recommendations

Même si vous choisissez d’utiliser l’authentification par mot de passe du nom d’utilisateur, vous ne devez pas conserver le mot de passe de l’utilisateur final. Une fois l’authentification par mot de passe de nom d’utilisateur initiale réussie, le cache de jetons de MSAL est lancé et le jeton d’actualisation (RT) est automatiquement mis en cache. À partir de maintenant, votre application peut simplement appeler MSAL pour obtenir un nouveau jeton d’accès acquire_token_silent() sans nom d’utilisateur et mot de passe.

Paramétrage

Plateforme d'identités Microsoft prend en charge le flux de mot de passe du nom d’utilisateur sur l’application cliente publique et l’application cliente confidentielle. Si vous devez configurer votre application en tant qu’application cliente publique, activez la capture d’écran ci-dessous pour l’autoriser.

Configuration de l’application publique