Autenticación con nombre de usuario y contraseña

Warning

El flujo de credenciales de contraseña del propietario del recurso (ROPC) ha quedado en desuso para las aplicaciones cliente públicas debido a riesgos de seguridad. Microsoft recomienda usar un flujo de autenticación más seguro. Siga las instrucciones oficiales sobre cómo migrar desde ROPC.

El contenido siguiente se aplica a todas las bibliotecas de MSAL, no solo a msal Python.

Microsoft recomienda no usar el flujo de nombre de usuario y contraseña. En la mayoría de los escenarios, hay alternativas más seguras disponibles y recomendadas. Este flujo requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando no se puedan usar otros más seguros. Para obtener más información sobre por qué desea evitar el uso de esta concesión, vea por qué Microsoft está trabajando para convertir las contraseñas en algo del pasado.

Constraints

  • Por diseño y directiva, la autenticación de nombre de usuario y contraseña solo funciona para las cuentas profesionales y educativas, pero no para las cuentas de Microsoft (MSA). Consulte la definición de estos 2 tipos de cuentas aquí.
  • La autenticación de nombre de usuario y contraseña no es compatible con el acceso condicional y la autenticación multifactor, ya que no es un flujo interactivo, el Plataforma de identidad de Microsoft no tiene la oportunidad de presentar un cuadro de diálogo basado en web para que el usuario final interactúe. Como consecuencia, si la aplicación se ejecuta en un inquilino de Microsoft Entra donde el administrador de inquilinos requiere autenticación multifactor (muchas organizaciones lo hacen), este flujo no funcionará.
  • Dado que la autenticación de contraseña de nombre de usuario es un flujo no interactivo:
    • el usuario de la aplicación debe haber consentido previamente para usar la aplicación.
    • o bien, el administrador del inquilino debe haber dado previamente su consentimiento para que todos los usuarios del inquilino usen la aplicación.
    • Esto significa que:
      • ya sea que, como desarrollador, ha hecho clic el botón Conceder en Azure Portal usted mismo;
      • o un administrador de inquilinos ha presionado el botón Conceder o revocar el consentimiento del administrador para {dominio de inquilino} en la pestaña Permisos de API del registro de la aplicación (consulte Agregar permisos para acceder a las API web).
      • o bien, ha proporcionado una manera para que los usuarios consienten la aplicación (consulte Solicitud de consentimiento de usuario individual).
      • o bien, ha proporcionado una manera de que el administrador de inquilinos dé su consentimiento a la aplicación (consulte consentimiento del administrador).

Recomendaciones

Incluso si decide usar la autenticación de contraseña de nombre de usuario, no debe conservar la contraseña del usuario final. Después de que la autenticación inicial de contraseña de nombre de usuario se realizó correctamente, la caché de tokens de MSAL se iniciaría y almacenaría en caché el token de actualización (RT) automáticamente. Desde ahora, la aplicación solo puede llamar a MSAL acquire_token_silent() para obtener un nuevo token de acceso sin nombre de usuario y contraseña.

Configuración

La plataforma de identidad de Microsoft admite el flujo de nombre de usuario y contraseña en aplicaciones cliente públicas y aplicaciones cliente confidenciales. Si necesita configurar su aplicación como una aplicación cliente pública, active el interruptor que aparece en la siguiente captura de pantalla para habilitarlo.

Configuración de la aplicación pública