Mengakses API Publik Azure Sphere dengan identitas terkelola AAD
Penting
Ini adalah dokumentasi Azure Sphere (Warisan). Azure Sphere (Warisan) dihentikan pada 27 September 2027, dan pengguna harus bermigrasi ke Azure Sphere (Terintegrasi) saat ini. Gunakan pemilih Versi yang terletak di atas TOC untuk melihat dokumentasi Azure Sphere (Terintegrasi).
Anda dapat menggunakan metode ini untuk mengautentikasi ke layanan apa pun yang mendukung autentikasi Azure Active Directory (AAD), tanpa kredensial apa pun dalam kode Anda. Identitas terkelola AAD menangani pembuatan atau perpanjangan perwakilan layanan atas nama Anda. Ini adalah perwakilan layanan dari jenis khusus yang hanya dapat digunakan dengan sumber daya Azure. Ketika identitas terkelola dihapus, perwakilan layanan yang sesuai secara otomatis dihapus.
Ditetapkan sistem: Beberapa layanan Azure memungkinkan Anda mengaktifkan identitas terkelola secara langsung pada instans layanan. Misalnya, Azure App Service. Saat Anda mengaktifkan identitas terkelola yang ditetapkan sistem, identitas dibuat di Azure Active Directory yang terkait dengan siklus hidup instans layanan tersebut. Jadi, ketika sumber daya dihapus, Azure secara otomatis menghapus identitas untuk Anda. Secara desain, hanya sumber daya Azure yang dapat menggunakan identitas ini untuk meminta token dari Azure Active Directory.
Prasyarat
- Perangkat berbasis Azure Sphere dengan fitur pengembangan.
- Penyewa Azure Sphere.
- Siapkan lingkungan pengembangan untuk Azure Sphere.
- Penyewa Azure Active Directory (ID Penyewa).
- Langganan Azure.
- Tambahkan ID Aplikasi API Publik Azure Sphere ke penyewa Azure Anda.
Bagian berikut menjelaskan cara memanggil Azure Sphere Public API (PAPI) dari Azure Web App menggunakan identitas terkelola.
Langkah 1: Aktifkan identitas yang ditetapkan sistem di sumber daya
Untuk mengaktifkan identitas yang ditetapkan sistem di sumber daya dan menemukan ID Objek untuk proyek:
- Di portal Azure, di panel navigasi kiri, klik App Services.
- Pilih langganan yang diperlukan dari menu dropdown, dan pilih aplikasi Anda dari hasil pencarian.
- Pada menu aplikasi logika, di bagian Pengaturan, pilih Identitas.
- Aktifkan identitas yang ditetapkan sistem dengan mengatur Status ke Aktif.
- Klik Simpan.
- Salin ID Objek.
Langkah 2: Tambahkan identitas terkelola ke penyewa Azure Sphere
Catatan
Pastikan Anda memiliki hal berikut sebelum memulai langkah ini:
- Penyewa Azure Sphere: Jalankan perintah azsphere tenant show-selected menggunakan Azure Sphere CLI.
- ID Penyewa Azure: Temukan ID penyewa melalui portal Azure. Salin ID penyewa Azure Active Directory.
Azure Sphere memperlakukan perwakilan layanan sebagai pengguna lain. Untuk memperoleh token menggunakan perwakilan layanan, pertama-tama tambahkan pengguna perwakilan layanan ke penyewa Azure Sphere, lalu tetapkan peran kepada pengguna di penyewa Azure Sphere menggunakan Azure Sphere CLI.
Identitas pengguna dapat dihasilkan sebagai <ObjectID>@<TenantID.onmicrosoft.com>.
Dalam contoh berikut, kami membuat pengguna menggunakan kombinasi ID objek dan ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
penyewa Azure AD di ID tttttttt-tttt-tttt-tttt-tttttttttttt
penyewa Azure Sphere, lalu menambahkan peran Kontributor untuk pengguna ini.
Masuk dengan login Azure Sphere Anda menggunakan Azure Sphere CLI:
azsphere login
Pilih penyewa yang diperlukan:
azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
Untuk menambahkan pengguna ke peran yang diperlukan:
azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
Langkah 3: Tambahkan paket Azure.Identity NuGet dalam proyek
Tambahkan paket Azure.Identity NuGet dalam proyek. Token Azure Sphere Public API (PAPI) dapat diperoleh oleh DefaultAzureCredential.
Misalnya, lihat cuplikan kode:
public static async Task<string> GetAS3Token()
{
DefaultAzureCredential credential = new DefaultAzureCredential();
var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
new[] { "https://firstparty.sphere.azure.net/api/.default" }));
return result.Token;
}