Mulai cepat: Melindungi API web ASP.NET Core dengan platform identitas Microsoft
Mulai cepat ini menggunakan sampel kode API web ASP.NET Core untuk menunjukkan cara membatasi akses sumber daya ke akun resmi. Sampel menggunakan ASP.NET Core Identity yang berinteraksi dengan Microsoft Authentication Library (MSAL) untuk menangani autentikasi.
Prasyarat
- Akun Azure dengan langganan aktif. Jika Anda belum memilikinya, Buat akun secara gratis.
- Persyaratan minimum .NET 8.0 SDK
- Visual Studio 2022 atau Visual Studio Code
Mendaftarkan pengidentifikasi aplikasi dan rekaman
Ujung
Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.
Untuk menyelesaikan pendaftaran, beri nama aplikasi dan tentukan jenis akun yang didukung. Setelah terdaftar, halaman Gambaran Umum aplikasi menampilkan pengidentifikasi yang diperlukan dalam kode sumber aplikasi.
Masuk ke pusat admin Microsoft Entra setidaknya sebagai Pengembang Aplikasi.
Jika Anda memiliki akses ke beberapa penyewa, gunakan ikon Pengaturan di menu atas untuk beralih ke penyewa tempat Anda ingin mendaftarkan aplikasi dari menu Direktori + langganan.
Telusuri Aplikasi >Identitas>Pendaftaran aplikasi.
Pilih Pendaftaran baru.
Masukkan Nama untuk aplikasi, seperti NewWebAPI1.
Untuk Jenis akun yang didukung, pilih Akun di direktori organisasi ini saja. Untuk informasi tentang jenis akun yang berbeda, pilih opsi Bantu saya memilih .
Pilih Daftar.
Panel Gambaran Umum aplikasi ditampilkan saat pendaftaran selesai. Rekam ID Direktori (penyewa) dan ID Aplikasi (klien) yang akan digunakan dalam kode sumber aplikasi Anda.
Nota
Jenis akun yang didukung dapat diubah dengan merujuk ke Ubah akun yang didukung oleh aplikasi.
Mengekspos API
Setelah API terdaftar, Anda dapat mengonfigurasi izinnya dengan menentukan cakupan yang diekspos API ke aplikasi klien. Aplikasi klien meminta izin untuk melakukan operasi dengan meneruskan token akses bersama dengan permintaannya ke API web yang dilindungi. API web kemudian melakukan operasi yang diminta hanya jika token akses yang diterimanya berisi cakupan yang diperlukan.
Di bawah Kelola, pilih Ekspos API > Tambahkan cakupan. Terima URI
(api://{clientId})
ID Aplikasi yang diusulkan dengan memilih Simpan dan lanjutkan.{clientId}
adalah nilai yang direkam dari halaman Gambaran Umum. Kemudian masukkan informasi berikut:- Untuk Nama cakupan, masukkan
Forecast.Read
. - Untuk Siapa yang dapat menyetujui, pastikan bahwa opsi Admin dan pengguna dipilih.
- Dalam kotak Nama tampilan persetujuan admin, masukkan
Read forecast data
. - Dalam kotak Deskripsi persetujuan admin, masukkan
Allows the application to read weather forecast data
. - Dalam kotak Nama tampilan persetujuan pengguna, masukkan
Read forecast data
. - Dalam kotak Deskripsi persetujuan pengguna, masukkan
Allows the application to read weather forecast data
. - Pastikan bahwa Status diatur ke Diaktifkan.
- Untuk Nama cakupan, masukkan
Pilih Tambahkan cakupan. Jika cakupan telah dimasukkan dengan benar, cakupan tersebut tercantum di panel Mengekspos API .
Mengkloning atau mengunduh aplikasi sampel
Untuk mendapatkan aplikasi sampel, Anda dapat mengkloningnya dari GitHub atau mengunduhnya sebagai file .zip .
Untuk mengkloning sampel, buka prompt perintah dan navigasi ke tempat Anda ingin membuat proyek, dan masukkan perintah berikut:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Unduh file .zip. Ekstrak ke jalur file di mana panjang nama kurang dari 260 karakter.
Mengonfigurasi aplikasi sampel ASP.NET Core
Di IDE Anda, buka folder proyek, ms-identity-docs-code-dotnet/web-api, yang berisi sampel.
Buka
appsettings.json
file, yang berisi cuplikan kode berikut:{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "Scopes": "Forecast.Read" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
Temukan yang berikut ini
key
:ClientId
- Pengidentifikasi aplikasi, juga disebut sebagai klien.value
Ganti teks dalam tanda kutip dengan ID Aplikasi (klien) yang direkam sebelumnya dari halaman Gambaran Umum aplikasi terdaftar.TenantId
- Pengidentifikasi penyewa tempat aplikasi terdaftar.value
Ganti teks dalam tanda kutip dengan nilai ID Direktori (penyewa) yang direkam sebelumnya dari halaman Gambaran Umum aplikasi terdaftar.
Jalankan aplikasi sampel
Jalankan perintah berikut untuk memulai aplikasi:
dotnet run
Output seperti sampel berikut muncul:
... info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:{port} ...
Rekam nomor port di
http://localhost:{port}
URL.Untuk memverifikasi bahwa titik akhir dilindungi, perbarui URL dasar dalam perintah cURL berikut agar sesuai dengan yang Anda terima di langkah sebelumnya, lalu jalankan perintah:
curl -X GET https://localhost:5001/weatherforecast -ki
Respons yang diharapkan adalah 401 Tidak Sah dengan output yang mirip dengan:
user@host:~$ curl -X GET https://localhost:5001/weatherforecast -ki HTTP/2 401 date: Fri, 23 Sep 2023 23:34:24 GMT server: Kestrel www-authenticate: Bearer content-length: 0
Langkah berikutnya
Lanjutkan ke artikel berikutnya untuk mempelajari cara memanggil API web yang dilindungi menggunakan cURL.