Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwierzytelnianie interakcyjne przy użyciu identyfikatora Entra firmy Microsoft wymaga przeglądarki internetowej. Jednak w przypadku urządzeń i systemów operacyjnych, które nie udostępniają przeglądarki internetowej, przepływ kodu urządzenia umożliwia użytkownikowi korzystanie z innego urządzenia (na przykład innego komputera lub telefonu komórkowego) w celu interaktywnego logowania. Korzystając z przepływu kodu urządzenia, aplikacja uzyskuje tokeny za pośrednictwem dwuetapowego procesu specjalnie zaprojektowanego dla tych urządzeń/systemu operacyjnego. Przykładami takich zastosowań są aplikacje działające na platformie IoT lub narzędzia wiersza poleceń (CLI).
Typowy przepływ kodu urządzenia jest zgodny z krokami:
Za każdym razem, gdy wymagane jest uwierzytelnianie użytkownika, aplikacja udostępnia kod dla użytkownika. Użytkownik jest proszony o użycie innego urządzenia, takiego jak smartfon połączony z Internetem, aby przejść do adresu URL, na przykład ,
https://microsoft.com/devicelogini wprowadzić kod. W takim przypadku strona internetowa prowadzi użytkownika przez normalne środowisko uwierzytelniania, w tym monity o wyrażenie zgody i uwierzytelnianie wieloskładnikowe, jeśli jest to konieczne.Po pomyślnym uwierzytelnieniu aplikacja wiersza polecenia odbiera wymagane tokeny za pośrednictwem kanału zaplecza i używa ich do wykonywania wywołań internetowego interfejsu API, których potrzebuje.
Constraints
- Przepływ kodu urządzenia jest dostępny tylko dla publicznych aplikacji klienckich
- Organ przekazany w elemencie
PublicClientApplicationmusi być skonfigurowany jako jedna z poniższych opcji:- Dzierżawa ma postać
https://login.microsoftonline.com/{tenant}/, gdzietenantto identyfikator GUID reprezentujący identyfikator dzierżawy lub domena skojarzona z dzierżawą. - Konta służbowe i szkolne (
https://login.microsoftonline.com/organizations/)
- Dzierżawa ma postać
Konta osobiste Microsoft nie są jeszcze obsługiwane przez punkt końcowy Azure AD v2.0 (nie można używać dzierżaw
/commonani/consumers).
Fragment kodu
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();
Dodatkowe informacje
Jeśli chcesz dowiedzieć się więcej o przepływie kodu urządzenia: