Mulai Cepat: Mendapatkan token dan memanggil Microsoft Graph API menggunakan identitas aplikasi konsol
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan cara aplikasi konsol .NET Core bisa mendapatkan token akses untuk memanggil Microsoft Graph API dan menampilkan daftar pengguna di direktori. Sampel kode juga menunjukkan cara pekerjaan atau layanan Windows dapat berjalan dengan identitas aplikasi, bukan identitas pengguna. Sampe aplikasi konsol dalam mulai cepat ini juga merupakan aplikasi daemon, jadi ini adalah aplikasi klien rahasia.
Diagram berikut menunjukkan cara kerja sampel aplikasi:
Prasyarat
Mulai cepat ini memerlukan .NET Core 3.1 SDK tetapi juga akan perfungsi dengan .NET 5.0 SDK.
Mendaftarkan dan mengunduh aplikasi
Anda memiliki dua opsi untuk mulai membuat aplikasi Anda: konfigurasi otomatis atau manual.
Konfigurasi otomatis
Jika Anda ingin mendaftarkan dan mengonfigurasikan aplikasi secara otomatis lalu mengunduh sampel kode, ikuti langkah berikut:
- Buka halaman portal Microsoft Azure untuk pendaftaran aplikasi.
- Masukkan nama aplikasi dan pilih Daftar.
- Ikuti petunjuk untuk mengunduh dan mengonfigurasikan aplikasi baru secara otomatis dengan satu kali klik.
Konfigurasi manual
Jika Anda ingin mengonfigurasikan sampel aplikasi dan kode secara manual, gunakan prosedur berikut.
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda secara manual, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Untuk Nama, masukkan nama aplikasi. Misalnya, masukkan Daemon-console. Pengguna aplikasi akan melihat nama ini, dan Anda dapat mengubahnya nanti.
- Pilih Daftar untuk membuat aplikasi.
- Di bagian Kelola, pilih Sertifikat & rahasia.
- Di bawah Rahasia klien, pilih Rahasia klien baru, masukkan nama, lalu pilih Tambahkan. Catat nilai rahasia di lokasi aman untuk digunakan di langkah selanjutnya.
- Di bawah Kelola, pilih Izin API>Tambahkan izin. Pilih Microsoft Graph.
- Pilih Izin aplikasi.
- Di bawah node Pengguna, pilih User.Read.All, lalu pilih Tambahkan izin.
Langkah 2: Mengunduh proyek Visual Studio Anda
Mengunduh proyek Visual Studio
Anda dapat menjalankan proyek yang disediakan baik di Visual Studio atau Visual Studio untuk Mac.
Tip
Untuk menghindari kesalahan yang disebabkan oleh keterbatasan panjang jalur di Windows, kami sarankan mengekstrak arsip atau mengkloning repositori ke direktori di dekat akar drive Anda.
Langkah 3: Mengonfigurasi proyek Visual Studio Anda
Ekstrak file .zip ke folder lokal yang dekat dengan akar disk. Misalnya, ekstrak ke C:\Azure-Samples.
Sebaiknya ekstrak arsip ke direktori dekat akar drive untuk menghindari kesalahan yang disebabkan oleh batasan panjang jalur di Windows.
Buka solusi di Visual Studio: 1-Call-MSGraph\daemon-console.sln (opsional).
Dalam appsettings.json, ganti nilai
Tenant,ClientId, danClientSecret:"Tenant": "Enter_the_Tenant_Id_Here", "ClientId": "Enter_the_Application_Id_Here", "ClientSecret": "Enter_the_Client_Secret_Here"Dalam kode itu:
Enter_the_Application_Id_Hereadalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan. Untuk menemukan nilai untuk ID aplikasi (klien) dan ID direktori (penyewa), buka halaman Gambaran Umum aplikasi di portal Microsoft Azure.- Ganti
Enter_the_Tenant_Id_Heredengan ID penyewa atau nama penyewa (misalnya,contoso.microsoft.com). - Ganti
Enter_the_Client_Secret_Heredengan rahasia klien yang Anda buat di langkah 1. Untuk membuat kunci baru, buka halaman Sertifikat & rahasia.
Langkah 4: Persetujuan admin
Jika Anda mencoba menjalankan aplikasi pada saat ini, Anda akan menerima kesalahan HTTP 403 - Terlarang: "Hak istimewa yang tidak memadai untuk menyelesaikan operasi." Kesalahan ini terjadi karena izin hanya aplikasi apa pun memerlukan administrator global direktori Anda untuk memberikan persetujuan kepada aplikasi Anda. Pilih salah satu opsi berikut, bergantung pada peran Anda.
Administrator penyewa global
Jika Anda adalah administrator penyewa global, buka Aplikasi perusahaan di portal Microsoft Azure. Pilih pendaftaran aplikasi Anda, dan pilih Izin dari bagian Keamanan di panel kiri. Kemudian pilih tombol besar berlabel Beri persetujuan admin untuk {Nama Penyewa} (yang mana {Nama Penyewa} adalah nama direktori Anda).
Pengguna standar
Jika Anda adalah pengguna standar penyewa Anda, minta administrator global untuk memberikan persetujuan admin untuk aplikasi Anda. Untuk melakukannya, berikan URL berikut kepada administrator Anda:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
Dalam URL tersebut:
- Ganti
Enter_the_Tenant_Id_Heredengan ID penyewa atau nama penyewa (misalnya,contoso.microsoft.com). Enter_the_Application_Id_Hereadalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.
Anda mungkin melihat kesalahan "AADSTS50011: Tidak ada alamat balasan yang terdaftar untuk aplikasi" setelah Anda memberikan persetujuan ke aplikasi dengan menggunakan URL sebelumnya. Kesalahan ini terjadi karena aplikasi ini dan URL tidak memiliki URI pengalihan. Anda dapat mengabaikannya.
Langkah 5: Menjalankan aplikasi
Jika Anda menggunakan Visual Studio atau Visual Studio untuk Mac, tekan F5 untuk menjalankan aplikasi. Jika tidak, jalankan aplikasi melalui prompt perintah, konsol, atau terminal:
cd {ProjectFolder}\1-Call-MSGraph\daemon-console
dotnet run
Dalam kode itu:
{ProjectFolder}adalah folder tempat Anda mengekstrak file .zip. Contohnya adalahC:\Azure-Samples\active-directory-dotnetcore-daemon-v2.
Anda akan melihat daftar pengguna di Azure Active Directory sebagai hasilnya.
Aplikasi mulai cepat ini menggunakan rahasia klien untuk mengidentifikasi aplikasi itu sendiri sebagai klien rahasia. Rahasia klien ditambahkan sebagai file teks biasa ke file proyek Anda. Untuk alasan keamanan, sebaiknya gunakan sertifikat alih-alih rahasia klien sebelum mempertimbangkan aplikasi sebagai aplikasi produksi. Untuk mengetahui informasi selengkapnya tentang cara menggunakan sertifikat, lihat petunjuk ini di repositori GitHub untuk sampel ini.
Informasi selengkapnya
Bagian ini memberikan gambaran umum tentang kode yang diperlukan untuk memasukkan pengguna. Gambaran umum ini dapat berguna untuk memahami cara kerja kode, apa argumen utamanya, dan cara menambahkan rincian masuk ke aplikasi konsol .NET Core yang ada.
MSAL.NET
Microsoft Authentication Library (MSAL, dalam paket Microsoft.Identity.Client) adalah pustaka yang digunakan untuk memasukkan pengguna dan meminta token untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Mulai cepat ini meminta token dengan menggunakan identitas aplikasi itu sendiri alih-alih izin yang didelegasikan. Alur autentikasi dalam kasus ini dikenal sebagai alur OAuth info masuk klien. Untuk mengetahui informasi selengkapnya tentang cara menggunakan MSAL.NET dengan alur info masuk klien, lihat artikel ini.
Anda dapat menginstal MSAL.NET dengan menjalankan perintah berikut di Konsol Pengelola Paket Visual Studio:
dotnet add package Microsoft.Identity.Client
Inisialisasi MSAL
Anda dapat menambahkan referensi untuk MSAL dengan menambahkan kode berikut:
using Microsoft.Identity.Client;
Lalu, inisialisasi MSAL dengan menggunakan kode berikut:
IConfidentialClientApplication app;
app = ConfidentialClientApplicationBuilder.Create(config.ClientId)
.WithClientSecret(config.ClientSecret)
.WithAuthority(new Uri(config.Authority))
.Build();
| Elemen | Deskripsi |
|---|---|
config.ClientSecret |
Rahasia klien yang dibuat untuk aplikasi di portal Microsoft Azure. |
config.ClientId |
ID aplikasi (klien) untuk aplikasi yang terdaftar di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure. |
config.Authority |
(Opsional) Titik akhir layanan token keamanan (STS) untuk diautentikasi pengguna. Biasanya https://login.microsoftonline.com/{tenant} untuk cloud publik, yang mana {tenant} adalah nama penyewa atau ID penyewa Anda. |
Untuk mengetahui informasi selengkapnya, lihat dokumen referensi untuk ConfidentialClientApplication.
Meminta token
Untuk meminta token dengan menggunakan identitas aplikasi, gunakan metode AcquireTokenForClient:
result = await app.AcquireTokenForClient(scopes)
.ExecuteAsync();
| Elemen | Deskripsi |
|---|---|
scopes |
Berisi cakupan yang diminta. Untuk klien rahasia, nilai ini harus menggunakan format yang mirip dengan {Application ID URI}/.default. Format ini menunjukkan bahwa cakupan yang diminta adalah cakupan yang secara statis ditentukan dalam objek aplikasi yang diatur di portal Microsoft Azure. Untuk Microsoft Graph, {Application ID URI} menunjuk ke https://graph.microsoft.com. Untuk API web kustom, {Application ID URI} didefinisikan di portal Microsoft Azure, di bawah Pendaftaran Aplikasi (Pratinjau)>Mengekspos API. |
Untuk mengetahui informasi selengkapnya, lihat dokumen referensi untuk AcquireTokenForClient.
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 lebih lanjut tentang aplikasi daemon, lihat gambaran umum skenario:
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan cara aplikasi konsol Python bisa mendapatkan token akses menggunakan identitas aplikasi untuk memanggil 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:
Mendaftarkan dan mengunduh aplikasi mulai cepat
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda secara manual, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Masukkan Nama untuk aplikasi Anda, misalnya
Daemon-console. Pengguna aplikasi mungkin melihat nama ini, dan Anda dapat mengubahnya nanti. - Pilih Daftarkan.
- Di bagian Kelola, pilih Sertifikat & rahasia.
- Di bawah Rahasia klien, pilih Rahasia klien baru, masukkan nama, lalu pilih Tambahkan. Catat nilai rahasia di lokasi aman untuk digunakan di langkah selanjutnya.
- Di bawah Kelola, pilih Izin API>Tambahkan izin. Pilih Microsoft Graph.
- Pilih Izin aplikasi.
- Di bagian simpul Pengguna, pilih User.Read.All, lalu pilih Tambahkan izin.
Langkah 2: Unduh proyek Python
Langkah 3: Konfigurasikan proyek Python
Ekstrak file zip ke folder lokal yang dekat dengan akar disk, misalnya, C:\Azure-Samples.
Navigasi ke sub folder 1-Call-MsGraph-WithSecret.
Edit parameters.json dan ganti nilai bidang
authority,client_id, dansecretdengan cuplikan berikut:"authority": "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here", "client_id": "Enter_the_Application_Id_Here", "secret": "Enter_the_Client_Secret_Here"Di mana:
Enter_the_Application_Id_Here- adalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.Enter_the_Tenant_Id_Here- ganti nilai ini dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com)Enter_the_Client_Secret_Here: ganti nilai ini dengan rahasia klien yang Anda buat di langkah 1.
Tip
Untuk menemukan nilai ID aplikasi (klien) , ID direktori (penyewa) , buka halaman Gambaran Umum di portal Microsoft Azure. Untuk membuat kunci baru, buka halaman Sertifikat & rahasia.
Langkah 4: Persetujuan admin
Jika Anda mencoba menjalankan aplikasi pada saat ini, Anda akan menerima kesalahan HTTP 403 - Terlarang: Insufficient privileges to complete the operation. Kesalahan ini terjadi karena izin khusus aplikasi memerlukan persetujuan Admin: administrator global direktori harus memberikan persetujuan pada aplikasi Anda. Pilih salah satu opsi di bawah ini bergantung pada peran Anda:
Administrator penyewa global
Jika Anda administrator penyewa global, buka halaman Izin API di Pendaftaran aplikasi di portal Microsoft Azure dan pilih Beri persetujuan admin untuk {Tenant Name} (Di mana {Tenant Name} adalah nama direktori Anda).
Pengguna standar
Jika Anda adalah pengguna standar penyewa Anda, minta administrator global 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
Di mana:
Enter_the_Tenant_Id_Here- ganti nilai ini dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com)Enter_the_Application_Id_Here- adalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.
Langkah 5: Jalankan aplikasi
Anda harus menginstal dependensi sampel ini sekali.
pip install -r requirements.txt
Kemudian, jalankan aplikasi melalui prompt perintah atau konsol:
python confidential_client_secret_sample.py parameters.json
Anda akan melihat pada output konsol beberapa fragmen Json yang mewakili daftar pengguna di direktori Azure AD Anda.
Penting
Aplikasi mulai cepat ini menggunakan rahasia klien untuk mengidentifikasi aplikasi itu 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 2-Call-MsGraph-WithCertificate.
Informasi selengkapnya
MSAL Python
MSAL Python adalah pustaka yang digunakan untuk masuk ke pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Seperti yang dijelaskan, mulai cepat ini meminta token menggunakan identitas aplikasi itu sendiri alih-alih izin yang didelegasikan. Alur autentikasi dalam kasus ini dikenal sebagai alur oauth kredensial klien . Untuk informasi selengkapnya tentang cara menggunakan MSAL Python dengan aplikasi daemon, lihat artikel ini.
Anda dapat menginstal MSAL Python dengan menjalankan perintah pip berikut.
pip install msal
Inisialisasi MSAL
Anda bisa menambahkan referensi untuk MSAL dengan menambahkan kode berikut:
import msal
Lalu, inisialisasi MSAL menggunakan kode berikut:
app = msal.ConfidentialClientApplication(
config["client_id"], authority=config["authority"],
client_credential=config["secret"])
Di mana: Deskripsi config["secret"]Adalah rahasia klien yang dibuat untuk aplikasi di portal Microsoft Azure. config["client_id"]ID Aplikasi (klien) untuk aplikasi yang terdaftar di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure. config["authority"]Titik akhir STS untuk diautentikasi oleh pengguna. Biasanya https://login.microsoftonline.com/{tenant}untuk cloud publik, yang mana {tenant} adalah nama penyewa atau ID penyewa.
Untuk mengetahui informasi selengkapnya, lihat dokumen referensi untuk ConfidentialClientApplication.
Meminta token
Untuk meminta token menggunakan identitas aplikasi, gunakan metode AcquireTokenForClient:
result = None
result = app.acquire_token_silent(config["scope"], account=None)
if not result:
logging.info("No suitable token exists in cache. Let's get a new one from AAD.")
result = app.acquire_token_for_client(scopes=config["scope"])
Di mana: Deskripsi config["scope"]Berisi 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}didefinisikan di bagian Ekspos API di Pendaftaran aplikasi di portal Microsoft Azure.
Untuk informasi selengkapnya, lihat dokumen referensi untuk AcquireTokenForClient.
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 arahan skenario.
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan bagaimana aplikasi konsol Node.js bisa mendapatkan token akses menggunakan identitas aplikasi untuk memanggil Microsoft Graph API dan menampilkan daftar pengguna di direktori. Contoh kode menunjukkan bagaimana pekerjaan tanpa pengawasan atau layanan Windows dapat berjalan dengan identitas aplikasi, bukan identitas pengguna.
Mulai cepat ini menggunakan Microsoft Authentication Library for Node.js (MSAL Node) dengan pemberian kredensial klien.
Prasyarat
- Node.js
- Visual Studio Code atau editor kode lainnya
Mendaftar dan mengunduh aplikasi sampel
Ikuti langkah-langkah di bawah ini untuk memulai.
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda secara manual, ikuti langkah-langkah berikut:
- Masuk ke portal Microsoft Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Masukkan Nama untuk aplikasi Anda, misalnya
msal-node-cli. Pengguna aplikasi mungkin melihat nama ini, dan Anda dapat mengubahnya nanti. - Pilih Daftarkan.
- Di bagian Kelola, pilih Sertifikat & rahasia.
- Di bawah Rahasia klien, pilih Rahasia klien baru, masukkan nama, lalu pilih Tambahkan. Catat nilai rahasia di lokasi aman untuk digunakan di langkah selanjutnya.
- Di bawah Kelola, pilih Izin API>Tambahkan izin. Pilih Microsoft Graph.
- Pilih Izin aplikasi.
- Di bagian simpul Pengguna, pilih User.Read.All, lalu pilih Tambahkan izin.
Langkah 2: Unduh proyek contoh Node.js
Langkah 3: Konfigurasikan proyek contoh Node.js
- Ekstrak file zip ke folder lokal yang dekat dengan akar disk, misalnya, C:/Azure-Samples.
- Edit .env dan ganti nilai bidang
TENANT_ID,CLIENT_ID, danCLIENT_SECRETdengan cuplikan berikut:
"TENANT_ID": "Enter_the_Tenant_Id_Here",
"CLIENT_ID": "Enter_the_Application_Id_Here",
"CLIENT_SECRET": "Enter_the_Client_Secret_Here"
Di mana:
Enter_the_Application_Id_Here- adalah ID Aplikasi (klien) dari aplikasi yang Anda daftarkan sebelumnya. Temukan ID ini di panel Gambaran Umum pendaftaran aplikasi di portal Microsoft Azure.Enter_the_Tenant_Id_Here- ganti nilai ini dengan ID Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com). Temukan nilai ini di panel Gambaran Umum pendaftaran aplikasi di portal Microsoft Azure.Enter_the_Client_Secret_Here- ganti nilai ini dengan rahasia klien yang Anda buat sebelumnya. Untuk membuat kunci baru, gunakan Sertifikat & rahasia di pengaturan pendaftaran aplikasi di portal Microsoft Azure.
Peringatan
Setiap rahasia teks biasa dalam kode sumber menimbulkan peningkatan risiko keamanan. Artikel ini menggunakan rahasia klien teks biasa hanya untuk mempermudah. Gunakan kredensial sertifikat, bukan rahasia dalam aplikasi klien rahasia Anda, terutama aplikasi yang ingin Anda sebarkan ke produksi.
Langkah 4: Persetujuan admin
Jika Anda mencoba menjalankan aplikasi pada saat ini, Anda akan menerima kesalahan HTTP 403 - Terlarang: Insufficient privileges to complete the operation. Kesalahan ini terjadi karena izin khusus aplikasi yang memerlukan persetujuan admin: administrator global direktori Anda harus memberikan persetujuan untuk aplikasi Anda. Memilih salah satu opsi di bawah ini bergantung pada peran Anda:
Administrator penyewa global
Jika Anda adalah administrator penyewa global, buka halaman Izin API di Pendaftaran Aplikasi portal Microsoft Azure dan pilih Beri persetujuan admin untuk {Nama Penyewa} (di mana {Nama Penyewa} adalah nama direktori Anda).
Pengguna standar
Jika Anda adalah pengguna standar penyewa Anda, maka Anda perlu meminta administrator global untuk memberikan persetujuan admin 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
Di mana:
Enter_the_Tenant_Id_Here- ganti nilai ini dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com)Enter_the_Application_Id_Here- adalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.
Langkah 5: Jalankan aplikasi
Temukan folder root sampel (jika package.json berada) di prompt perintah atau konsol. Anda harus menginstal dependensi sampel ini sekali saja:
npm install
Kemudian, jalankan aplikasi melalui permintaah perintah atau konsol:
node . --op getUsers
Anda akan melihat pada output konsol beberapa fragmen JSON yang mewakili daftar pengguna di direktori Azure AD Anda.
Tentang kode
Di bawah ini, beberapa aspek penting dari aplikasi sampel yang dibahas.
MSAL Node
MSAL Node adalah lpustaka yang digunakan untuk memasukkan pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Seperti yang dijelaskan, mulai cepat ini meminta token berdasarkan izin aplikasi (menggunakan identitas aplikasi sendiri) alih-alih izin yang didelegasikan. Alur otentikasi yang digunakan dalam kasus ini dikenal sebagai aliran kredensial klien OAuth 2.0. Untuk informasi selengkapnya tentang cara menggunakan MSAL Node dengan aplikasi daemon, lihat Skenario: Aplikasi Daemon.
Anda dapat menginstal Node MSAL dengan menjalankan perintah npm berikut.
npm install @azure/msal-node --save
Inisialisasi MSAL
Anda bisa menambahkan referensi untuk MSAL dengan menambahkan kode berikut:
const msal = require('@azure/msal-node');
Lalu, inisialisasi MSAL menggunakan kode berikut:
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
clientSecret: "Enter_the_Client_Secret_Here",
}
};
const cca = new msal.ConfidentialClientApplication(msalConfig);
| Di mana: | Deskripsi |
|---|---|
clientId |
ID Aplikasi (klien) untuk aplikasi yang terdaftar di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure. |
authority |
Titik akhir STS untuk diautentikasi oleh pengguna. Biasanya https://login.microsoftonline.com/{tenant} untuk cloud publik, di mana {tenant} merupakan nama penyewa atau ID penyewa Anda. |
clientSecret |
Adalah rahasia klien yang dibuat untuk aplikasi di portal Microsoft Azure. |
Untuk informasi lebih lanjut, silakan lihat dokumentasi referensi untuk ConfidentialClientApplication
Meminta token
Untuk meminta token menggunakan identitas aplikasi, gunakan metode acquireTokenByClientCredential:
const tokenRequest = {
scopes: [ 'https://graph.microsoft.com/.default' ],
};
const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
| Di mana: | Deskripsi |
|---|---|
tokenRequest |
Berisi cakupan yang diminta. Untuk klien rahasia, ini harus menggunakan format yang mirip dengan {Application ID URI}/.default untuk 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 ke https://graph.microsoft.com). Untuk API web kustom, {Application ID URI} ditentukan pada bagian Mengekspos API di Pendaftaran Aplikasi portal Microsoft Azure. |
tokenResponse |
Respons berisi token akses untuk cakupan yang diminta. |
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 lebih lanjut tentang pengembangan aplikasi daemon/konsol dengan MSAL Node, lihat tutorial:
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan cara aplikasi konsol Java bisa mendapatkan token akses menggunakan identitas aplikasi untuk memanggil 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
Mendaftarkan dan mengunduh aplikasi mulai cepat
Anda memiliki dua opsi untuk memulai aplikasi mulai cepat: Ekspres (Opsi 1 di bawah), dan Manual (Opsi 2)
Opsi 1: Mendaftarkan dan mengonfigurasi aplikasi secara otomatis lalu mengunduh sampel kode
- Buka pengalaman mulai cepat portal Microsoft Azure - Pendaftaran aplikasi.
- Masukkan nama aplikasi dan pilih Daftar.
- Ikuti petunjuk untuk mengunduh dan mengonfigurasi aplikasi baru secara otomatis hanya dengan satu klik.
Opsi 2: Mendaftar dan mengonfigurasi sampel aplikasi dan kode secara manual
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda secara manual, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Masukkan Nama untuk aplikasi Anda, misalnya
Daemon-console. Pengguna aplikasi mungkin melihat nama ini, dan Anda dapat mengubahnya nanti. - Pilih Daftarkan.
- Di bagian Kelola, pilih Sertifikat & rahasia.
- Di bawah Rahasia klien, pilih Rahasia klien baru, masukkan nama, lalu pilih Tambahkan. Catat nilai rahasia di lokasi aman untuk digunakan di langkah selanjutnya.
- Di bawah Kelola, pilih Izin API>Tambahkan izin. Pilih Microsoft Graph.
- Pilih Izin aplikasi.
- Di bagian simpul Pengguna, pilih User.Read.All, lalu pilih Tambahkan izin.
Langkah 2: Unduh proyek Java
Langkah 3: Konfigurasikan proyek Java
- Ekstrak file zip ke folder lokal yang dekat dengan akar disk, misalnya, C:\Azure-Samples.
- Navigasi ke subfolder msal-client-credential-secret.
- Edit src\main\resources\application.properties dan ganti nilai bidang
AUTHORITY,CLIENT_ID, danSECRETdengan cuplikan berikut:
AUTHORITY=https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/
CLIENT_ID=Enter_the_Application_Id_Here
SECRET=Enter_the_Client_Secret_Here
Di mana:
Enter_the_Application_Id_Here- adalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.Enter_the_Tenant_Id_Here- ganti nilai ini dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com).Enter_the_Client_Secret_Here: ganti nilai ini dengan rahasia klien yang Anda buat di langkah 1.
Tip
Untuk menemukan nilai ID aplikasi (klien) , ID direktori (penyewa) , buka halaman Gambaran Umum di portal Microsoft Azure. Untuk membuat kunci baru, buka halaman Sertifikat & rahasia.
Langkah 4: Persetujuan admin
Jika Anda mencoba menjalankan aplikasi pada saat ini, Anda akan menerima kesalahan HTTP 403 - Terlarang: Insufficient privileges to complete the operation. Kesalahan ini terjadi karena izin khusus aplikasi memerlukan persetujuan Admin: administrator global direktori harus memberikan persetujuan pada aplikasi Anda. Pilih salah satu opsi di bawah ini bergantung pada peran Anda:
Administrator penyewa global
Jika Anda administrator penyewa global, buka halaman Izin API di Pendaftaran aplikasi di portal Microsoft Azure dan pilih Beri persetujuan admin untuk {Tenant Name} (Di mana {Tenant Name} adalah nama direktori Anda).
Pengguna standar
Jika Anda pengguna standar penyewa Anda, Anda harus meminta administrator global memberikan persetujuan admin untuk aplikasi. Untuk melakukannya, berikan URL berikut kepada administrator:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
Di mana:
Enter_the_Tenant_Id_Here- ganti nilai ini dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com)Enter_the_Application_Id_Here- adalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.
Langkah 5: Jalankan aplikasi
Anda dapat menguji sampel secara langsung dengan menjalankan metode utama ClientCredentialGrant.java dari IDE Anda.
Dari shell 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 mulai cepat ini menggunakan rahasia klien untuk mengidentifikasi aplikasi itu 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, mulai cepat ini meminta token menggunakan identitas aplikasi itu sendiri alih-alih izin yang didelegasikan. Alur autentikasi dalam kasus ini dikenal sebagai alur oauth kredensial klien . Untuk informasi selengkapnya tentang cara menggunakan MSAL Java dengan aplikasi daemon, lihat artikel ini.
Tambahkan MSAL4J ke aplikasi dengan menggunakan Maven atau Gradle untuk mengelola dependensi 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();
Di mana: 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 diautentikasi oleh pengguna. 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;
Di mana: 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}didefinisikan 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 arahan skenario.