Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die vermittelte Authentifizierung sammelt Benutzeranmeldeinformationen mithilfe des Systemauthentifizierungsbrokers, um eine App zu authentifizieren. Ein Systemauthentifizierungsbroker ist eine App, die auf dem Computer eines Benutzers ausgeführt wird, der die Authentifizierungs-Handshakes und die Tokenwartung für alle verbundenen Konten verwaltet.
Die vermittelte Authentifizierung bietet die folgenden Vorteile:
- Enables Single Sign-On (SSO): Ermöglicht Apps die Vereinfachung der Authentifizierung von Benutzern mit Microsoft Entra ID und schützt Microsoft Entra ID Aktualisierungstoken vor Exfiltration und Missbrauch.
- Erweiterte Sicherheit: Viele Sicherheitsverbesserungen werden mit dem Broker bereitgestellt, ohne die App-Logik aktualisieren zu müssen.
- Erweiterte Featureunterstützung: Mithilfe des Brokers können Entwickler auf umfangreiche Betriebssystem- und Dienstfunktionen zugreifen.
- Systemintegration: Anwendungen, die das Broker-Plug-and-Play mit der integrierten Kontoauswahl verwenden, sodass der Benutzer schnell ein vorhandenes Konto auswählen kann, anstatt die gleichen Anmeldeinformationen immer wieder einzugeben.
- Tokenschutz: Stellt sicher, dass die Aktualisierungstoken gerätegebunden sind und apps das Abrufen von gerätegebundenen Zugriffstoken ermöglichen. Siehe Tokenschutz.
Windows stellt einen Authentifizierungsbroker namens Web Account Manager (WAM) bereit. WAM ermöglicht es Identitätsanbietern wie Microsoft Entra ID, sich nativ in das Betriebssystem zu integrieren und sichere Anmeldedienste für Apps bereitzustellen. Die vermittelte Authentifizierung ermöglicht der App alle Vorgänge, die durch die interaktiven Anmeldeinformationen zulässig sind.
Persönliche Microsoft-Konten und Geschäfts-, Schul- oder Unikonten werden unterstützt. Bei unterstützten Windows Versionen wird die browserbasierte Standardbenutzeroberfläche durch eine reibungslosere Authentifizierung ersetzt, ähnlich wie integrierte Windows-Apps.
Konfigurieren der App für die brokerierte Authentifizierung
Führen Sie die folgenden Schritte aus, um die vermittelte Authentifizierung in Ihrer Anwendung zu aktivieren:
Navigieren Sie im portal Azure zu Microsoft Entra ID, und wählen Sie im linken Menü App registrations aus.
Wählen Sie die Registrierung für Ihre App und dann "Authentifizierung" aus.
Fügen Sie der App-Registrierung über eine Plattformkonfiguration den entsprechenden Umleitungs-URI hinzu:
Wählen Sie unter Plattformkonfigurationen+Plattform hinzufügen.
Wählen Sie unter "Plattformen konfigurieren" die Kachel für Ihren Anwendungstyp (Plattform) aus, um ihre Einstellungen zu konfigurieren, z. B. mobile anwendungen und Desktopanwendungen.
Geben Sie in benutzerdefinierte Umleitungs-URIs den folgenden Umleitungs-URI ein:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}Ersetzen Sie
{your_client_id}sie durch die Anwendungs-ID (Client-ID) aus dem Bereich "Übersicht" der App-Registrierung.Wählen Sie "Konfigurieren" aus.
Weitere Informationen finden Sie unter Hinzufügen eines Umleitungs-URI zu einer App-Registrierung.
Wählen Sie im Bereich "Authentifizierung " unter "Erweiterte Einstellungen" "Ja " aus, um öffentliche Clientflüsse zuzulassen.
Klicken Sie auf Speichern, um die Änderungen zu übernehmen.
Um die Anwendung für bestimmte Ressourcen zu autorisieren, navigieren Sie zu der betreffenden Ressource, wählen Sie API-Berechtigungen aus, und aktivieren Sie Microsoft Graph und andere Ressourcen, auf die Sie zugreifen möchten.
Von Bedeutung
Sie müssen auch der Administrator Ihres Mandanten sein, um Ihrer Anwendung die Zustimmung zu erteilen, wenn Sie sich zum ersten Mal anmelden.
Zuweisen von Rollen
Um Ihren App-Code erfolgreich mit vermittelter Authentifizierung auszuführen, erteilen Sie Ihrem Benutzerkonto Berechtigungen mithilfe von Azure rollenbasierter Zugriffssteuerung (RBAC). Weisen Sie Ihrem Benutzerkonto eine geeignete Rolle für den relevanten Azure-Dienst zu. Beispiel:
- Azure Blob Storage: Weisen Sie die Rolle Storage Account Data Contributor zu.
- Azure Key Vault: Weisen Sie die Rolle Key Vault Secrets Officer zu.
Wenn eine App angegeben ist, muss sie ÜBER API-Berechtigungen für user_impersonation Access Azure Storage (Schritt 6 im vorherigen Abschnitt) verfügen. Diese API-Berechtigung ermöglicht der App den Zugriff auf Azure Speicher im Namen des angemeldeten Benutzers, nachdem die Zustimmung während der Anmeldung erteilt wurde.
Implementieren des Codes
Die Azure Identitätsbibliothek unterstützt die vermittelte Authentifizierung mithilfe von InteractiveBrowserCredential. Die Azure-Identity-Broker-Bibliothek bietet InteractiveBrowserBrokerCredentialBuilder, womit ein InteractiveBrowserCredential, der den Systemauthentifizierungsbroker nutzen kann, erstellt wird. Wenn Sie beispielsweise die brokerierte Authentifizierung in einer Java Konsolen-App verwenden möchten, um sich bei Azure Key Vault mit dem SecretClient zu authentifizieren, führen Sie die folgenden Schritte aus:
Fügen Sie die
azure-identity-brokerAbhängigkeit zu Ihrerpom.xmlDatei hinzu.<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity-broker</artifactId> </dependency>Erhalten Sie einen Verweis auf das übergeordnete Fenster, über dem der Kontoauswahldialog angezeigt werden soll. Beispiele finden Sie unter "Abrufen eines Fensterhandles".
Erstellen Sie eine Instanz von
InteractiveBrowserCredentialunter Verwendung vonInteractiveBrowserBrokerCredentialBuilder: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());
Im vorherigen Beispiel wählt useDefaultBrokerAccount einen stillen, vermittelten Authentifizierungsfluss mit dem Standardsystemkonto aus. Auf diese Weise muss der Benutzer nicht wiederholt dasselbe Konto auswählen. Wenn die stille, vermittelte Authentifizierung fehlschlägt, wechselt InteractiveBrowserCredential zur interaktiven, vermittelten Authentifizierung.
Der folgende Screenshot zeigt die alternative interaktive, vermittelte Authentifizierung:
Fenstergriff abrufen
Wenn Sie sich interaktiv mit InteractiveBrowserCredential authentifizieren, benötigen Sie ein übergeordnetes Fenster-Handle, um sicherzustellen, dass das Authentifizierungsdialogfeld korrekt über dem Fenster angezeigt wird, das die Anfrage sendet.
JavaFX-Anwendung
Verwenden Sie für eine JavaFX-Anwendung JNA (Java Native Access), um das Fensterhandle abzurufen:
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());
}
Konsolenanwendung
Verwenden Sie für eine Konsolenanwendung auf Windows JNA, um das Konsolenfensterhandle abzurufen:
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());