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.
Selamat Datang! Ini mungkin bukan halaman yang Anda inginkan. Sementara kami bekerja memperbaikinya, tautan ini akan membawa Anda ke artikel yang tepat:
Mulai cepat: Memperoleh token dan memanggil Microsoft Graph dari aplikasi daemon Java
Kami mohon maaf atas ketidaknyamanan ini dan menghargai kesabaran Anda selama kami menyelesaikan masalah ini.
Dalam panduan cepat ini, Anda mengunduh dan menjalankan contoh kode yang menunjukkan cara aplikasi Java menggunakan identitas aplikasi untuk mengakses Microsoft Graph API dan menampilkan daftar pengguna di direktori. Sampel kode juga menunjukkan bagaimana pekerjaan tanpa pengawasan atau layanan Windows dapat berjalan dengan identitas aplikasi, bukan identitas pengguna.
Prasyarat
Untuk menjalankan sampel ini, Anda perlu:
- Java Development Kit (JDK) 8 atau lebih tinggi
- Maven
Unduh dan konfigurasikan aplikasi panduan cepat
Langkah 1: Konfigurasikan aplikasi di portal Microsoft Azure
Agar contoh kode untuk panduan cepat ini berfungsi, Anda perlu menghasilkan rahasia klien dan menambahkan izin aplikasi User.Read.All dari Graph API.
Aplikasi Anda dikonfigurasi dengan atribut ini.
Langkah 2: Unduh proyek Java
Catatan
Enter_the_Supported_Account_Info_Here
Langkah 3: Persetujuan admin
Jika Anda mencoba menjalankan aplikasi pada saat ini, Anda akan menerima HTTP 403 - Kesalahan terlarang: Insufficient privileges to complete the operation. Kesalahan ini terjadi karena izin khusus aplikasi memerlukan persetujuan admin: Administrator Aplikasi Cloud direktori Anda harus memberikan persetujuan untuk aplikasi Anda. Memilih salah satu opsi di bawah ini bergantung pada peran Anda:
Admin Aplikasi Cloud
Jika Anda adalah Administrator Aplikasi Cloud penyewa Anda, buka halaman Izin API pilih Berikan persetujuan admin untuk Enter_the_Tenant_Name_Here.
Pengguna standar
Jika Anda adalah pengguna standar penyewa Anda, maka Anda perlu meminta Administrator Aplikasi Cloud untuk memberikan persetujuan admin untuk aplikasi Anda. Untuk melakukannya, berikan URL berikut kepada administrator:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
Langkah 4: Jalankan aplikasi
Anda dapat menguji sampel secara langsung dengan menjalankan metode utama ClientCredentialGrant.java dari IDE Anda.
Dari terminal atau baris perintah:
$ mvn clean compile assembly:single
Ini akan menghasilkan file msal-client-credential-secret-1.0.0.jar di direktori /targets. Jalankan ini menggunakan Java yang dapat dieksekusi seperti di bawah ini:
$ java -jar msal-client-credential-secret-1.0.0.jar
Setelah berjalan, aplikasi harus menampilkan daftar pengguna dalam penyewa yang dikonfigurasi.
Penting
Aplikasi pemula ini menggunakan rahasia klien untuk mengidentifikasi dirinya sendiri sebagai klien rahasia. Karena rahasia klien ditambahkan sebagai teks biasa ke file proyek, karena alasan keamanan, sebaiknya Anda menggunakan sertifikat alih-alih rahasia klien sebelum mempertimbangkan aplikasi sebagai aplikasi produksi. Untuk informasi selengkapnya tentang cara menggunakan sertifikat, lihat instruksi ini di repositori GitHub yang sama untuk sampel ini, tetapi di folder kedua msal-client-credential-certificate.
Informasi selengkapnya
MSAL Java
MSAL Java adalah pustaka yang digunakan untuk memasukkan pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Seperti yang dijelaskan, panduan cepat ini meminta token menggunakan identitas asli aplikasi alih-alih izin yang didelegasikan. Alur autentikasi dalam kasus ini dikenal sebagai alur otorisasi OAuth menggunakan kredensial klien. Untuk informasi selengkapnya tentang cara menggunakan MSAL Java dengan aplikasi daemon, lihat artikel ini.
Tambahkan MSAL4J ke aplikasi Anda dengan menggunakan Maven atau Gradle untuk mengelola dependensi Anda dengan membuat perubahan berikut ke file pom.xml (Maven) atau build.gradle (Gradle) aplikasi.
Dalam pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
Dalam build.gradle:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
Inisialisasi MSAL
Tambahkan referensi ke MSAL untuk Java dengan menambahkan kode berikut ke bagian atas file tempat Anda akan menggunakan MSAL4J:
import com.microsoft.aad.msal4j.*;
Lalu, inisialisasi MSAL menggunakan kode berikut:
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication cca =
ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
Lokasi: Deskripsi CLIENT_SECRETAdalah rahasia klien yang dibuat untuk aplikasi di portal Microsoft Azure. CLIENT_IDID Aplikasi (klien) untuk aplikasi yang terdaftar di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure. AUTHORITYTitik akhir STS untuk pengguna melakukan autentikasi. Biasanya https://login.microsoftonline.com/{tenant}untuk cloud publik, yang mana {tenant} adalah nama penyewa atau ID penyewa.
Meminta token
Untuk meminta token menggunakan identitas aplikasi, gunakan metode acquireToken:
IAuthenticationResult result;
try {
SilentParameters silentParameters =
SilentParameters
.builder(SCOPE)
.build();
// try to acquire token silently. This call will fail since the token cache does not
// have a token for the application you are requesting an access token for
result = cca.acquireTokenSilently(silentParameters).join();
} catch (Exception ex) {
if (ex.getCause() instanceof MsalException) {
ClientCredentialParameters parameters =
ClientCredentialParameters
.builder(SCOPE)
.build();
// Try to acquire a token. If successful, you should see
// the token information printed out to console
result = cca.acquireToken(parameters).join();
} else {
// Handle other exceptions accordingly
throw ex;
}
}
return result;
Lokasi: Deskripsi SCOPEBerisi cakupan yang diminta. Untuk klien rahasia, ini harus menggunakan format yang mirip dengan {Application ID URI}/.defaultuntuk menunjukkan bahwa cakupan yang diminta adalah yang didefinisikan secara statis dalam objek aplikasi yang diatur di portal Microsoft Azure (untuk Microsoft Graph,{Application ID URI}mengarah kehttps://graph.microsoft.com). Untuk API web kustom,{Application ID URI}ditentukan di bagian Ekspos API di Pendaftaran aplikasi di portal Microsoft Azure.
Bantuan dan dukungan
Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang aplikasi daemon, lihat halaman utama skenario.