Sdílet prostřednictvím


Ověřování Java aplikací pro Azure služby během místního vývoje pomocí zprostředkovaného ověřování

Zprostředkované ověřování shromažďuje přihlašovací údaje uživatele pomocí zprostředkovatele ověřování systému k ověření aplikace. Systémový zprostředkovatel ověřování je aplikace spuštěná na počítači uživatele, která spravuje ověřovací procesy a správu tokenů pro všechny připojené účty.

Zprostředkované ověřování nabízí následující výhody:

  • Enables Single Sign-On (SSO): Umožňuje aplikacím zjednodušit ověřování uživatelů pomocí Microsoft Entra ID a chránit Microsoft Entra ID obnovovací tokeny před exfiltrací a zneužitím.
  • Rozšířené zabezpečení: Mnoho vylepšení zabezpečení se dodává se zprostředkovatelem, aniž by bylo nutné aktualizovat logiku aplikace.
  • Vylepšená podpora funkcí: S pomocí zprostředkovatele můžou vývojáři přistupovat k bohatým možnostem operačního systému a služeb.
  • Integrace systému: Aplikace, které používají modul plug-and-play zprostředkovatele s integrovaným výběrem účtu, umožňuje uživateli rychle vybrat existující účet místo opětovného zadávání stejných přihlašovacích údajů.
  • Ochrana tokenů: Zajišťuje, že jsou obnovovací tokeny vázané na zařízení a umožňují aplikacím získávat přístupové tokeny vázané na zařízení. Viz Ochrana tokenů.

Windows poskytuje zprostředkovatele ověřování s názvem Web Account Manager (WAM). WAM umožňuje poskytovatelům identity, jako je Microsoft Entra ID, nativně připojit k operačnímu systému a poskytovat aplikacím zabezpečené přihlašovací služby. Zprostředkované ověřování umožňuje aplikaci pro všechny operace povolené interaktivními přihlašovacími údaji.

Podporují se osobní účty Microsoft a pracovní nebo školní účty. U podporovaných verzí Windows se výchozí uživatelské rozhraní založené na prohlížeči nahrazuje plynulejším prostředím ověřování, podobně jako integrované aplikace Windows.

Konfigurace aplikace pro zprostředkované ověřování

Pokud chcete ve své aplikaci povolit zprostředkované ověřování, postupujte takto:

  1. Na portálu Azure přejděte na Microsoft Entra ID a v nabídce vlevo vyberte App registrations.

  2. Vyberte registraci aplikace, a pak vyberte ověřování.

  3. Přidejte do registrace aplikace odpovídající identifikátor URI přesměrování prostřednictvím konfigurace platformy:

    1. V části Konfigurace platformy vyberte + Přidat platformu.

    2. V části Konfigurovat platformy vyberte dlaždici pro váš typ aplikace (platformu) a nakonfigurujte její nastavení, jako jsou mobilní a desktopové aplikace.

    3. Do identifikátorů URI pro vlastní přesměrování zadejte následující identifikátor URI přesměrování:

      ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}

      Nahraďte {your_client_id}ID aplikace (klienta) z podokna Přehled registrace aplikace.

    4. Vyberte a nakonfigurujte.

    Další informace najdete v tématu Přidání identifikátoru URI přesměrování do registrace aplikace.

  4. Zpět v podokně Ověřování v části Upřesnit nastavení vyberte Ano pro Povolit toky veřejného klienta.

  5. Chcete-li použít změny, vyberte Uložit .

  6. Pokud chcete aplikaci autorizovat pro konkrétní prostředky, přejděte na příslušný prostředek, vyberte OprávněníAPI a povolte Microsoft Graph a další prostředky, ke které chcete získat přístup.

    Důležité

    Při prvním přihlášení musíte být také správcem vašeho tenanta, abyste udělili souhlas s vaší aplikací.

Přiřaďte role

Pokud chcete úspěšně spustit kód aplikace se zprostředkovaným ověřováním, udělte uživatelskému účtu oprávnění pomocí Azure řízení přístupu založeného na rolích (RBAC). Přiřaďte příslušné roli k vašemu uživatelskému účtu pro příslušnou službu Azure. Například:

  • Azure Blob Storage: Přiřaďte roli přispěvatel dat ke Storage účtu.
  • Azure Key Vault: Přiřaďte roli důstojník pro správu tajných klíčů.

Pokud je aplikace zadaná, musí mít nastavená oprávnění rozhraní API pro user_impersonation Access Azure Storage (krok 6 v předchozí části). Toto oprávnění rozhraní API aplikaci umožňuje přístup k úložišti Azure jménem přihlášeného uživatele po udělení souhlasu během přihlašování.

Implementace kódu

Knihovna identit Azure podporuje zprostředkované ověřování pomocí InteractiveBrowserCredential. Knihovna azure-identity-broker poskytuje InteractiveBrowserBrokerCredentialBuilder, která vytvoří schopnost InteractiveBrowserCredential používat zprostředkovatele ověřování systému. Pokud chcete například použít zprostředkované ověřování v aplikaci konzoly Java k ověření v Azure Key Vault pomocí SecretClient, postupujte takto:

  1. Přidejte závislost azure-identity-broker do souboru pom.xml.

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity-broker</artifactId>
    </dependency>
    
  2. Získejte odkaz na nadřazené okno, ve kterém by se mělo zobrazit dialogové okno pro výběr účtu. Příklady najdete v tématu Získání popisovače okna.

  3. Vytvoření instance InteractiveBrowserCredential pomocí InteractiveBrowserBrokerCredentialBuilder:

    import com.azure.identity.InteractiveBrowserCredential;
    import com.azure.identity.broker.InteractiveBrowserBrokerCredentialBuilder;
    import com.azure.security.keyvault.secrets.SecretClient;
    import com.azure.security.keyvault.secrets.SecretClientBuilder;
    import com.azure.security.keyvault.secrets.models.KeyVaultSecret;
    
    long windowHandle = getWindowHandle(); // See examples below
    
    InteractiveBrowserCredential credential = new InteractiveBrowserBrokerCredentialBuilder()
        .setWindowHandle(windowHandle)
        .useDefaultBrokerAccount()
        .build();
    
    SecretClient client = new SecretClientBuilder()
        .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
        .credential(credential)
        .buildClient();
    
    KeyVaultSecret secret = client.getSecret("MySecret");
    System.out.println("Retrieved secret: " + secret.getName());
    

V předchozím příkladu useDefaultBrokerAccount zvolí tiché zprostředkované ověřování pomocí výchozího systémového účtu. Tímto způsobem uživatel nemusí opakovaně vybírat stejný účet. Pokud je tichý a zprostředkované ověřování selže, InteractiveBrowserCredential se vrátí k interaktivnímu zprostředkovanému ověřování.

Následující snímek obrazovky ukazuje alternativní interaktivní prostředí zprostředkovaného ověřování:

Snímek obrazovky přihlašovací obrazovky Windows při použití instance InteractiveBrowserCredential s povoleným zprostředkovatelem k ověření uživatele.

Získejte úchyt okna

Při interaktivním ověřování pomocí InteractiveBrowserCredential potřebujete popisovač nadřazeného okna, aby se dialogové okno ověřování zobrazilo správně na okně, které odešle požadavek.

Aplikace JavaFX

Pro aplikaci JavaFX pomocí JNA (Java Native Access) získejte popisovač okna:

import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;

public long getWindowHandle(Stage stage) {
    WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, stage.getTitle());
    return Pointer.nativeValue(hwnd.getPointer());
}

Konzolová aplikace

Pro konzolovou aplikaci na Windows pomocí JNA získejte popisovač okna konzoly:

import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.WinDef;

WinDef.HWND hwnd = Kernel32.INSTANCE.GetConsoleWindow();
long windowHandle = Pointer.nativeValue(hwnd.getPointer());