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.
Aplikasi yang dihosting di luar Azure, seperti lokal atau di pusat data pihak ketiga, harus menggunakan perwakilan layanan aplikasi melalui Microsoft Entra ID untuk mengautentikasi ke layanan Azure. Di bagian depan, Anda mempelajari:
- Cara mendaftarkan aplikasi dengan Microsoft Entra untuk membuat perwakilan layanan
- Cara mengatur peran pada izin cakupan
- Cara melakukan autentikasi menggunakan perwakilan layanan atau service principal dari kode aplikasi Anda
Menggunakan prinsipal layanan untuk aplikasi khusus memungkinkan Anda mematuhi prinsip hak istimewa minimal saat mengakses sumber daya Azure. Izin terbatas pada persyaratan khusus aplikasi selama pengembangan, mencegah akses yang tidak disengaja ke sumber daya Azure yang ditujukan untuk aplikasi atau layanan lain. Pendekatan ini juga membantu menghindari masalah saat aplikasi dipindahkan ke produksi dengan memastikannya tidak terlalu istimewa di lingkungan pengembangan.
Pendaftaran aplikasi yang berbeda harus dibuat untuk setiap lingkungan tempat aplikasi dihosting. Ini memungkinkan izin sumber daya khusus lingkungan dikonfigurasi untuk setiap prinsipal layanan dan memastikan aplikasi yang disebarkan ke satu lingkungan tidak mengakses sumber daya Azure yang termasuk dalam lingkungan lain.
Mendaftarkan aplikasi di Azure
Objek prinsip layanan aplikasi dibuat melalui pendaftaran aplikasi di platform Azure menggunakan portal Azure atau Azure CLI.
Di portal Azure, gunakan bilah pencarian untuk menavigasi ke halaman App registrations.
Pada halaman App registrations, pilih + Pendaftaran baru.
Pada halaman Daftarkan aplikasi:
- Untuk bidang Nama, masukkan nilai deskriptif yang menyertakan nama aplikasi dan lingkungan target.
- Untuk Jenis akun yang didukung, pilih Akun di direktori organisasi ini saja (Hanya Microsoft Customer Led - Penyewa tunggal), atau opsi mana yang paling sesuai dengan kebutuhan Anda.
Pilih Daftarkan untuk mendaftarkan aplikasi Anda dan buat perwakilan layanan.
cuplikan layar
Pada halaman Pendaftaran aplikasi untuk aplikasi Anda, salin ID Aplikasi (klien) dan ID Direktori (penyewa) dan tempelkan di lokasi sementara untuk digunakan nanti dalam konfigurasi kode aplikasi Anda.
Pilih Tambahkan sertifikat atau rahasia untuk menyiapkan kredensial untuk aplikasi Anda.
Pada halaman Sertifikat & rahasia, pilih + Rahasia klien baru.
Pada panel pop-up Tambahkan rahasia klien yang terbuka:
- Untuk Deskripsi, masukkan nilai Saat Ini.
- Untuk nilai Kedaluwarsa , biarkan nilai yang direkomendasikan secara default, yaitu 180 hari.
- Pilih Tambahkan untuk menambahkan rahasia.
Pada halaman Sertifikat & rahasia, salin properti Nilai rahasia klien untuk digunakan dalam langkah selanjutnya.
Nota
Nilai rahasia klien hanya ditampilkan sekali setelah pendaftaran aplikasi dibuat. Anda dapat menambahkan lebih banyak rahasia klien tanpa membatalkan rahasia klien ini, tetapi tidak ada cara untuk menampilkan nilai ini lagi.
Menetapkan peran ke perwakilan layanan aplikasi
Selanjutnya, tentukan peran (izin) apa yang dibutuhkan aplikasi Anda pada sumber daya apa dan tetapkan peran tersebut ke perwakilan layanan yang Anda buat. Peran dapat ditetapkan di tingkat sumber daya, grup sumber daya, atau langganan. Contoh ini menunjukkan cara menetapkan peran di cakupan grup sumber daya, karena sebagian besar aplikasi mengelompokkan semua sumber daya Azure mereka ke dalam satu grup sumber daya.
Di portal Azure, navigasikan ke halaman Overview grup sumber daya yang berisi aplikasi Anda.
Pilih Kontrol akses (IAM) dari navigasi kiri.
Pada halaman Kontrol akses (IAM), pilih + Tambahkan lalu pilih Tambahkan penetapan peran dari menu drop-down. Halaman Tambahkan penetapan peran menyediakan beberapa tab untuk mengonfigurasi dan menetapkan peran.
Pada tab Peran , gunakan kotak pencarian untuk menemukan peran yang ingin Anda tetapkan. Pilih peran, lalu pilih Berikutnya.
Pada tab Anggota :
- Untuk Menetapkan akses ke nilai, pilih Pengguna, grup, atau perwakilan layanan .
- Untuk nilai Anggota , pilih + Pilih anggota untuk membuka panel flyout Pilih anggota .
- Cari prinsipal layanan yang Anda buat sebelumnya dan pilih dari hasil yang telah difilter. Pilih Pilih untuk memilih grup dan menutup panel flyout.
- Pilih Tinjau + tetapkan di bawah tab Anggota.
Di tab
Tinjau & Tetapkan , pilihTinjau & Tetapkan di bagian bawah halaman.
Mengatur variabel lingkungan aplikasi
Selama waktu proses, kredensial tertentu dari pustaka Azure Identity
Terlepas dari pendekatan yang Anda pilih, konfigurasikan variabel lingkungan berikut untuk perwakilan layanan:
-
AZURE_CLIENT_ID: Digunakan untuk mengidentifikasi aplikasi terdaftar di Azure. -
AZURE_TENANT_ID: ID penyewa Microsoft Entra. -
AZURE_CLIENT_SECRET: Kredensial rahasia yang dihasilkan untuk aplikasi.
Dalam Visual Studio Code, variabel lingkungan dapat diatur dalam file launch.json yang terletak di folder .vscode proyek Anda. Nilai-nilai ini ditarik secara otomatis saat aplikasi dimulai. Namun, konfigurasi ini tidak bepergian dengan aplikasi Anda selama penyebaran, jadi Anda perlu menyiapkan variabel lingkungan pada lingkungan hosting target Anda.
{
"configurations": [
{
"env": {
"AZURE_CLIENT_ID": "<your-client-id>",
"AZURE_TENANT_ID": "<your-tenant-id>",
"AZURE_CLIENT_SECRET": "<your-client-secret>"
}
}
]
}
Mengautentikasi ke layanan Azure dari aplikasi Anda
Pustaka azure-identity menyediakan berbagai kredensial—implementasi TokenCredential yang disesuaikan untuk mendukung beragam skenario dan alur autentikasi Microsoft Entra. Langkah-langkah di depan menunjukkan cara menggunakan ClientSecretCredential saat bekerja dengan perwakilan layanan secara lokal dan dalam produksi.
Menerapkan kode
Mulailah dengan menambahkan paket ke aplikasi Anda.
pip install azure-identity
Selanjutnya, untuk kode Python apa pun yang membuat objek klien Azure SDK di aplikasi, Anda harus:
- Impor kelas
ClientSecretCredentialdari modulazure.identity. -
osImpor modul untuk membaca variabel lingkungan. - Baca variabel lingkungan untuk mendapatkan ID klien, ID penyewa, dan rahasia klien.
- Buat objek
ClientSecretCredentialdengan meneruskan ID penyewa, ID klien, dan rahasia klien. - Teruskan objek
ClientSecretCredentialke konstruktor objek klien Azure SDK.
Contoh pendekatan ini ditampilkan di segmen kode berikut.
import os
from azure.identity import ClientSecretCredential
from azure.storage.blob import BlobServiceClient
tenant_id = os.environ.get("AZURE_TENANT_ID")
client_id = os.environ.get("AZURE_CLIENT_ID")
client_secret = os.environ.get("AZURE_CLIENT_SECRET")
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
blob_service_client = BlobServiceClient(
account_url="https://<my_account_name>.blob.core.windows.net",
credential=credential)