Integrované ověřování Windows

Pokud vaše desktopová nebo mobilní aplikace běží na Windows a na počítači připojeném k Windows doméně (služba Active Directory nebo Microsoft Entra připojené), je možné pomocí integrovaného ověřování Windows (IWA) získat token bezobslužně. Při použití aplikace se nevyžaduje žádné uživatelské rozhraní.

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();

Omezení

  • Pouze federovaní* uživatelé, tj. u kterých se ověřování federuje na místní autoritu (například ADFS), nebo hybridní scénáře, ve kterých je povolené bezproblémové jednotné přihlášení. Čistě cloudoví tenanti, kde jsou uživatelé přímo v Microsoft Entra ID a bez jakékoli podpory služby služba Active Directory, nemohou tento postup použít.
  • IWA NEobchází MFA (vícefaktorové ověřování). Pokud je nakonfigurované vícefaktorové ověřování, může IWA selhat, pokud se vyžaduje výzva vícefaktorového ověřování, protože vícefaktorové ověřování vyžaduje interakci uživatele.

Tohle je složité. IWA není interaktivní, ale 2FA vyžaduje interaktivitu uživatele. Nemáte pod kontrolou, kdy zprostředkovatel identity vyžaduje provedení 2FA; to určuje správce tenanta. Z našich pozorování se vyžaduje 2FA, když se přihlašujete z jiné země nebo oblasti, když nejste připojení přes VPN k podnikové síti, a někdy i při připojení přes VPN. Neočekávejte deterministický soubor pravidel, Microsoft Entra ID používá AI k nepřetržitému učení, jestli se vyžaduje 2FA. Pokud IWA selže, měli byste použít výzvu pro uživatele jako záložní možnost.

  • Autorita předaná v parametru PublicApplication musí být:

    • tenanted (ve tvaru https://login.microsoftonline.com/{tenant}/, kde tenant je buď identifikátor GUID představující ID klienta, nebo doména přidružená ke klientovi.)
    • pro všechny pracovní a školní účty (https://login.microsoftonline.com/organizations/)

    Osobní účty Microsoft nejsou podporovány (tenanty /common ani /consumers nelze používat)

  • Protože integrované ověřování systému Windows je tichý proces:

    • uživatel vaší aplikace musel dříve souhlasit s používáním aplikace.
    • nebo správce klienta musel již dříve udělit souhlas s používáním aplikace všem uživatelům v klientovi.
    • To znamená, že:
      • Buď jste jako vývojář pro sebe stiskli tlačítko Grant na portálu Azure,
      • nebo správce tenanta klikl na tlačítko Udělit nebo odvolat souhlas správce pro {tenant domain} na kartě Oprávnění rozhraní API v registraci aplikace
      • nebo jste uživatelům poskytli způsob vyjádření souhlasu s aplikací.
      • nebo jste správci tenanta poskytli způsob, jak udělit souhlas s aplikací.