Autenticazione con nome utente e password

Avvertimento

Il flusso ROPC (Resource Owner Password Credential) è stato dichiarato deprecato per le applicazioni client pubbliche a causa dei rischi per la sicurezza. Microsoft consiglia di usare un flusso di autenticazione più sicuro. Seguire le indicazioni ufficiali su come eseguire la migrazione da ROPC.

Il contenuto seguente è applicabile a tutte le librerie MSAL, non solo a MSAL Python.

Microsoft consiglia di non usare il flusso di nome utente e password. Per la maggior parte degli scenari sono disponibili e consigliate alternative più sicure. Questo flusso richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando non è possibile usare altri flussi più sicuri. Per altre informazioni sul motivo per cui si vuole evitare di usare questa concessione, vedere perché Microsoft sta lavorando per creare password come una cosa del passato.For more information about why you want to avoid using this grant, see why Microsoft is working to make passwords a thing of the past.

Vincoli

  • Per impostazione predefinita e dei criteri, l'autenticazione con nome utente/password funziona solo per gli account aziendali e dell'istituto di istruzione, ma non per gli account di Microsoft (MSA). Vedere la definizione di questi 2 tipi di account qui.
  • L'autenticazione nome utente/password non è compatibile con l'accesso condizionale e l'autenticazione a più fattori, perché non si tratta di un flusso interattivo, l'Microsoft Identity Platform non ha la possibilità di presentare una finestra di dialogo basata sul Web per consentire all'utente finale di interagire. Di conseguenza, se l'app viene eseguita in un tenant Microsoft Entra in cui l'amministratore tenant richiede l'autenticazione a più fattori (molte organizzazioni lo fanno), questo flusso non funzionerà.
  • Poiché l'autenticazione con password utente è un flusso non interattivo:
    • L'utente dell'applicazione deve aver precedentemente acconsentito all'uso dell'applicazione
    • o l'amministratore del tenant deve aver precedentemente acconsentito a tutti gli utenti del tenant per usare l'applicazione.
    • Ciò significa che:
      • o tu, in qualità di sviluppatore, hai premuto per te stesso il pulsante Grant nel portale Azure,
      • o un amministratore tenant ha premuto il pulsante Concedi/revoca il consenso amministratore per {dominio tenant} nella scheda Autorizzazioni API della registrazione per l'applicazione (vedere Aggiungere autorizzazioni per accedere alle API Web)
      • oppure è stato fornito un modo per consentire agli utenti di fornire il consenso all'applicazione (vedere Richiesta di consenso utente singolo)
      • oppure è stato fornito un modo per consentire all'amministratore del tenant di fornire il consenso per l'applicazione (vedere il consenso dell'amministratore)

Recommendations

Anche se si sceglie di usare l'autenticazione con password utente, non è consigliabile rendere persistente la password dell'utente finale. Dopo che l'autenticazione iniziale con nome utente e password era andata a buon fine, la cache dei token di MSAL entrava in funzione e memorizzava automaticamente nella cache il token di aggiornamento (RT). Da ora in poi, l'app può semplicemente chiamare MSAL acquire_token_silent() per ottenere un nuovo token di accesso senza nome utente e password.

Setup

Microsoft Identity Platform supporta il flusso di password del nome utente nell'applicazione client pubblica e nell'applicazione client riservata. Se è necessario configurare l'app come applicazione client pubblica, attivare l'opzione sullo screenshot seguente per consentirla.

Configurazione dell'app pubblica