Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Autentikasi interaktif dengan MICROSOFT Entra ID memerlukan browser web. Namun, dalam kasus perangkat dan sistem operasi yang tidak menyediakan browser Web, Alur kode perangkat memungkinkan pengguna menggunakan perangkat lain (misalnya komputer lain atau ponsel) untuk masuk secara interaktif. Dengan menggunakan alur kode perangkat, aplikasi mendapatkan token melalui proses dua langkah yang dirancang khusus untuk perangkat/OS ini. Contoh aplikasi tersebut adalah aplikasi yang berjalan di IoT, atau alat Command-Line (CLI).
Alur kode perangkat umum mengikuti langkah-langkahnya:
Setiap kali autentikasi pengguna diperlukan, aplikasi menyediakan kode untuk pengguna. Pengguna diminta untuk menggunakan perangkat lain, seperti smartphone yang terhubung ke internet, untuk membuka URL, misalnya,
https://microsoft.com/devicelogin, dan memasukkan kode. Setelah itu selesai, halaman web mengarahkan pengguna melalui pengalaman autentikasi normal, yang mencakup permintaan persetujuan dan autentikasi multifaktor, jika perlu.Setelah autentikasi berhasil, aplikasi baris perintah menerima token yang diperlukan melalui saluran belakang, dan menggunakannya untuk melakukan panggilan API web yang diperlukan.
Constraints
- Alur Kode Perangkat hanya tersedia untuk aplikasi klien publik
- Otoritas yang diteruskan dalam
PublicClientApplicationperlu dikonfigurasi sebagai salah satu opsi di bawah ini:- Bertenant dalam bentuk
https://login.microsoftonline.com/{tenant}/, di manatenantadalah GUID yang merepresentasikan ID tenant atau domain yang terkait dengan tenant. - Semua akun kerja dan sekolah (
https://login.microsoftonline.com/organizations/)
- Bertenant dalam bentuk
Akun pribadi Microsoft belum didukung pada endpoint Azure AD v2.0 (Anda tidak dapat menggunakan tenant
/commonatau/consumers).
Cuplikan kode
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();
Informasi tambahan
Jika Anda ingin mempelajari selengkapnya tentang alur kode Perangkat: