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 interaktive Authentifizierung mit Microsoft Entra ID erfordert einen Webbrowser. Wenn Geräte und Betriebssysteme jedoch keinen Webbrowser bereitstellen, ermöglicht der Gerätecodefluss dem Benutzer, ein anderes Gerät (z. B. einen anderen Computer oder ein Mobiltelefon) zu verwenden, um sich interaktiv anzumelden. Mithilfe des Gerätecodeflusses ruft die Anwendung Token über einen zweistufigen Prozess ab, der speziell für diese Geräte/Das Betriebssystem entwickelt wurde. Beispiele für solche Anwendungen sind Anwendungen, die auf IoT ausgeführt werden, oder Command-Line Tools (CLI).
Ein typischer Gerätecodefluss folgt den Schritten:
Wenn eine Benutzerauthentifizierung erforderlich ist, stellt die App einen Code für den Benutzer bereit. Der Benutzer wird aufgefordert, ein anderes Gerät, z. B. ein mit dem Internet verbundenes Smartphone, zu verwenden, um beispielsweise
https://microsoft.com/deviceloginzu einer URL zu wechseln und den Code einzugeben. Danach wird der Benutzer auf der Webseite durch einen normalen Authentifizierungsprozess geführt, der ggf. auch Zustimmungsaufforderungen und die mehrstufige Authentifizierung umfasst.Nach erfolgreicher Authentifizierung empfängt die Befehlszeilen-App die erforderlichen Token über einen Backchannel und führt damit die benötigten Web-API-Aufrufe aus.
Constraints
- Gerätecodefluss ist nur für öffentliche Clientanwendungen verfügbar.
- Die in
PublicClientApplicationübergebene Autorität muss als eine der folgenden Optionen konfiguriert sein:- Sie muss auf Mandanten beruhen (im Format
https://login.microsoftonline.com/{tenant}/, wobeitenantentweder die GUID ist, die die Mandanten-ID darstellt, oder eine Domäne, die dem Mandanten zugeordnet ist). - Alle Geschäfts- und Schulkonten (
https://login.microsoftonline.com/organizations/)
- Sie muss auf Mandanten beruhen (im Format
Persönliche Microsoft-Konten werden vom Azure AD v2.0-Endpunkt noch nicht unterstützt (Sie können keine
/common- oder/consumers-Mandanten verwenden).
Codeausschnitt
PublicClientApplication app = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
.authority(AUTHORITY)
.build();
Consumer<DeviceCode> deviceCodeConsumer = (DeviceCode deviceCode) -> {
System.out.println(deviceCode.message());
};
CompletableFuture<IAuthenticationResult> future = app.acquireToken(
DeviceCodeFlowParameters.builder(scope, deviceCodeConsumer).build());
future.handle((res, ex) -> {
if(ex != null) {
System.out.println("message - " + ex.getMessage());
return "Unknown!";
}
System.out.println("Access Token - " + res.accessToken());
System.out.println("ID Token - " + res.idToken());
return res;
});
future.join();
Zusatzinformation
Falls Sie mehr über den Gerätecodefluss erfahren möchten: