Autenticación integrada de Windows

Si la aplicación móvil o de escritorio se ejecuta en Windows, y en un equipo conectado a un dominio de Windows (Active Directory o unido a Microsoft Entra), es posible usar la autenticación integrada de Windows (IWA) para adquirir un token de forma silenciosa. No se requiere ninguna interfaz de usuario cuando se usa la aplicación.

final String AUTHORITY;
final String APP_ID;
String userName;
List<String> scopes;

PublicClientApplication app = PublicClientApplication.builder(APP_ID)
        .authority(AUTHORITY)
        .build();

IntegratedWindowsAuthenticationParameters parameters =
        IntegratedWindowsAuthenticationParameters.builder(scope, userName).build();

IAuthenticationResult future = app.acquireToken(parameters).get();

Constraints

  • Solo los usuarios federados*, es decir, en los que la autenticación se federa a una autoridad local (ADFS, por ejemplo), o escenarios híbridos en los que está habilitado seamless-sso. Los inquilinos exclusivamente en la nube, en los que los usuarios están directamente en Microsoft Entra ID, sin ningún respaldo de Active Directory, no pueden utilizar este flujo.
  • IWA NO omite MFA (autenticación multifactor). Si se ha configurado MFA, IWA podría producir un error si es necesario un desafío de MFA, porque MFA necesita interacción del usuario.

Esta es complicada. IWA no es interactivo, pero 2FA requiere interactividad del usuario. No es usted quien controla cuándo el proveedor de identidad solicita que se realice la autenticación en dos factores (2FA); quien lo hace es el administrador del inquilino. A partir de nuestras observaciones, se requiere 2FA cuando inicia sesión desde un país o región diferente, cuando no se conecta a través de VPN a una red corporativa y, a veces, incluso cuando se conecta a través de VPN. No espere encontrar un conjunto fijo de reglas; Microsoft Entra ID usa IA para determinar continuamente si se requiere la autenticación de dos factores (2FA). Debe recurrir a una solicitud al usuario si falla la autenticación IWA

  • La autoridad indicada en la PublicApplication debe ser:

    • Por inquilino, con el formato https://login.microsoftonline.com/{tenant}/, donde tenant es el GUID que representa el ID del inquilino o un dominio asociado al inquilino.
    • para cualquier cuenta profesional o educativa (https://login.microsoftonline.com/organizations/)

    Las cuentas personales de Microsoft no son compatibles (no se puede usar /common ni /consumers como inquilinos)

  • Dado que la autenticación Windows integrada es un flujo silencioso:

    • 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 bien, 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.
      • o ha proporcionado una manera de que los usuarios consienten la aplicación
      • o bien, ha proporcionado una manera de que el administrador de inquilinos dé su consentimiento para la aplicación