Geïntegreerde Windows-verificatie

Als uw desktop- of mobiele toepassing op Windows draait en op een computer die is verbonden met een Windows-domein (gekoppeld aan Active Directory of Microsoft Entra), is het mogelijk om geïntegreerde Windows-verificatie (IWA) te gebruiken om op de achtergrond een token te verkrijgen. Er is geen gebruikersinterface vereist tijdens het gebruik van de toepassing.

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

  • Alleen gefedereerde* gebruikers, d.w.z. waarbij authenticatie wordt gefedereerd naar een on-premises autoriteit (bijvoorbeeld ADFS), of hybride scenario's waarbij naadloze eenmalige aanmelding (SSO) is ingeschakeld. Pure cloudtenants, waarbij gebruikers zich rechtstreeks in Microsoft Entra ID bevinden, zonder Active Directory back-up, kunnen deze stroom niet gebruiken.
  • IWA slaat MFA (meervoudige verificatie) niet over. Als MFA is geconfigureerd, kan IWA mislukken als er een MFA-uitdaging is vereist, omdat MFA gebruikersinteractie vereist.

Deze is lastig. IWA is niet-interactief, maar 2FA vereist interactiviteit van gebruikers. U bepaalt niet wanneer de id-provider 2FA aanvraagt om te worden uitgevoerd, de tenantbeheerder wel. Uit onze waarnemingen is 2FA vereist wanneer u zich aanmeldt vanuit een ander land of een andere regio, wanneer deze niet via VPN is verbonden met een bedrijfsnetwerk, en soms zelfs wanneer u verbinding maakt via VPN. Verwacht geen deterministische set regels, Microsoft Entra ID AI gebruikt om continu te leren of 2FA vereist is. U moet terugvallen op een gebruikersprompt als IWA mislukt

  • De autorisatie die in de PublicApplication wordt doorgegeven, moet zijn:

    • tenanted (in de vorm https://login.microsoftonline.com/{tenant}/ waarbij tenant ofwel de GUID is die de tenant-id vertegenwoordigt, ofwel een domein dat aan de tenant is gekoppeld.
    • voor werk- en schoolaccounts (https://login.microsoftonline.com/organizations/)

    Microsoft persoonlijke accounts worden niet ondersteund (u kunt geen /common- of /consumers-tenants gebruiken)

  • Omdat geïntegreerde Windows-verificatie een stille stroom is:

    • de gebruiker van uw toepassing moet eerder toestemming hebben gegeven om de toepassing te gebruiken
    • of de tenantbeheerder moet eerder toestemming hebben gegeven voor alle gebruikers in de tenant om de toepassing te kunnen gebruiken.
    • Dit betekent dat:
      • of u als ontwikkelaar op de knop Verlenen hebt gedrukt op de Azure-portal voor uzelf,
      • of een tenantbeheerder heeft gedrukt op de knop Beheerderstoestemming verlenen/intrekken voor {tenantdomein} op het tabblad API-machtigingen van de registratie voor de toepassing
      • of u hebt een manier opgegeven om gebruikers toestemming te geven voor de toepassing
      • of u hebt een manier opgegeven voor de tenantbeheerder om toestemming te geven voor de toepassing