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.
Artikel ini menyediakan panduan langkah demi langkah bagi pengembang dan administrator untuk menyiapkan autentikasi dan akses aplikasi yang aman ke Microsoft Planetary Computer Pro. Dengan menerapkan ID Microsoft Entra dan identitas terkelola, aplikasi dapat mengautentikasi dengan mulus tanpa mengelola kredensial, memastikan interaksi yang aman dengan sumber daya Planetary Computer Pro. Baik aplikasi Anda berjalan di Azure atau lingkungan lain, panduan ini menguraikan konfigurasi yang diperlukan, termasuk kontrol akses berbasis peran (RBAC) dan akuisisi token, untuk mengaktifkan akses aman.
Nota
Untuk aplikasi yang menggunakan fitur pendukung Azure AD B2C atau MICROSOFT Entra External ID seperti penyedia identitas sosial, aplikasi perlu terus menggunakan solusi identitas ini untuk memproksi lalu lintas autentikasi karena Planetary Computer Pro tidak mendukung alternatif untuk autentikasi ID Microsoft Entra.
Opsi dan rekomendasi autentikasi
Tabel berikut ini meringkas pendekatan autentikasi yang direkomendasikan berdasarkan tempat aplikasi Anda berjalan dan cara mengakses sumber daya:
| Lingkungan Hosting Aplikasi | Jenis Akses Diperlukan | Jenis Identitas yang Direkomendasikan | Explanation |
|---|---|---|---|
| Berjalan di Azure (VM, App Service, Functions, Container Apps, dll.) | App-Only (Aplikasi bertindak sebagai dirinya sendiri) | Identitas Terkelola (Disarankan ditetapkan pengguna) | Keamanan & Pengelolaan: Menghilangkan kebutuhan untuk menyimpan dan mengelola kredensial (rahasia atau sertifikat) dalam kode atau konfigurasi. Azure menangani rotasi kredensial secara otomatis. Preferensi penugasan oleh pengguna digunakan untuk berbagi di beberapa sumber. |
| Berjalan di Azure (VM, App Service, Functions, Container Apps, dll.) | Didelegasikan (Aplikasi bertindak atas nama pengguna) | Identitas Terkelola (Disarankan ditetapkan pengguna) | Memanfaatkan Integrasi Azure: Menggabungkan manfaat keamanan Identitas Terkelola untuk aplikasi itu sendiri dengan alur autentikasi pengguna standar. Menyederhanakan penyiapan infrastruktur dalam Azure. |
| Menjalankan Di Luar Azure (Lokal, cloud lain, komputer pengembang) | App-Only (Aplikasi bertindak sebagai dirinya sendiri) | Principal Layanan | Standar untuk Aplikasi Eksternal: Metode yang ditetapkan untuk aplikasi non-Azure untuk diautentikasi dengan ID Microsoft Entra. Memerlukan pengelolaan kredensial (rahasia atau sertifikat) dengan aman. |
| Menjalankan Di Luar Azure (Lokal, cloud lain, komputer pengembang) | Didelegasikan (Aplikasi bertindak atas nama pengguna) | Principal Layanan | Standar untuk Aplikasi Eksternal: Mengaktifkan alur OAuth 2.0 standar untuk masuk dan menyetujui pengguna untuk aplikasi di luar Azure, menggunakan identitas terdaftar aplikasi di ID Entra. |
| Menjalankan di Luar Azure (Alternatif) | App-Only atau Didelegasikan | Identitas yang Dikelola | Membawa Manfaat Azure: Dengan menghosting aplikasi dalam layanan komputasi Azure (seperti VM atau Aplikasi Kontainer), aplikasi dapat menggunakan keamanan dan pengelolaan Identitas Terkelola yang ditingkatkan, menghindari manajemen kredensial meskipun asalnya mungkin dianggap non-Azure. |
Prasyarat
- Akun Azure dengan langganan aktif - buat akun secara gratis
- Sumber GeoCatalog yang sudah ada.
Aplikasi yang berjalan di Azure
Untuk aplikasi yang berjalan di Azure, kami sarankan Anda membuat jenis identitas Microsoft Entra yang disebut Identitas Terkelola yang ditetapkan pengguna untuk mengakses sumber daya GeoCatalog. Aplikasi dapat menggunakan identitas terkelola untuk mendapatkan token Microsoft Entra (lihat bagian Memperoleh token akses untuk mengakses Microsoft Planetary Computer Pro tanpa harus mengelola kredensial apa pun. Untuk informasi selengkapnya tentang Identitas Terkelola dan jenis mana yang akan dipilih, lihat Apa itu identitas terkelola untuk sumber daya Azure. Untuk membuat identitas terkelola yang ditetapkan pengguna untuk aplikasi Anda yang berjalan di Azure, ikuti Cara menggunakan identitas terkelola untuk App Service dan Azure Functions.
Aplikasi tidak berjalan di Azure
Untuk aplikasi yang tidak berjalan di Azure, seperti lokal atau dihosting di penyedia cloud lain, kami sarankan Anda mendaftarkan aplikasi di pusat admin Microsoft Entra, termasuk URI pengalihan untuk menerima token keamanan, untuk membangun hubungan kepercayaan antara aplikasi Anda dan platform identitas Microsoft. Mendaftarkan aplikasi di Microsoft Entra secara otomatis membuat Service Principal untuk aplikasi, yang nantinya dapat Anda tetapkan peran RBAC. Jika aplikasi Anda memiliki pengaturan untuk mengonfigurasi autentikasi ID Microsoft Entra, Anda dapat menggunakan "ID Aplikasi (klien) dari aplikasi yang terdaftar" dan "ID Direktori (penyewa)" untuk melakukannya.
Jika Anda tidak dapat mendaftarkan aplikasi di Microsoft Entra seperti yang direkomendasikan sebelumnya, Anda memiliki opsi lain untuk menjalankan aplikasi di azure VM atau aplikasi Kontainer. Anda dapat membuat identitas terkelola yang ditetapkan pengguna dan menetapkannya ke komputer virtual (VM) atau aplikasi Kontainer seperti yang dijelaskan di sini - Mengonfigurasi identitas terkelola pada komputer virtual (VM) Azure dan Identitas terkelola di Azure Container Apps. Aplikasi akan dapat masuk dengan identitas terkelola untuk mengakses sumber daya GeoCatalog. Misalnya, agar aplikasi berjalan di dalam VM menggunakan identitas terkelola yang ditetapkan pengguna, Anda dapat menggunakan:
!az login --identity --username <client_id|object_id|resource_id>
Anda dapat menemukan ID klien, ID objek, atau ID sumber daya identitas terkelola dari portal Microsoft Azure. Sebagai alternatif untuk CLI, sampel kode Python ada di bawah bagian Memperoleh token akses untuk mengakses Microsoft Planetary Computer Pro.
azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>)
Setelah membuat identitas terkelola yang ditetapkan pengguna atau perwakilan layanan untuk aplikasi Anda seperti yang dijelaskan sebelumnya, Anda perlu memutuskan jenis skenario akses aplikasi: akses khusus aplikasi, hanya bertindak sebagai identitas aplikasi sendiri atau akses yang didelegasikan, bertindak atas nama pengguna yang masuk.
Akses khusus aplikasi
Dalam skenario akses ini, aplikasi bertindak sendiri tanpa pengguna yang masuk sebagai perilaku default. Anda dapat melanjutkan ke bagian konfigurasi RBAC Microsoft Planetary Computer Pro untuk aplikasi tersebut untuk menetapkan peran yang sesuai.
Akses didelegasikan
Dalam skenario akses ini, pengguna masuk ke aplikasi klien. Aplikasi klien mengakses sumber daya atas nama pengguna. Anda perlu memastikan pengguna aplikasi diberi peran RBAC yang tepat seperti yang dijelaskan di bawah bagian Buat dan Kelola Pengguna. Anda juga perlu mengonfigurasi izin API aplikasi dengan izin yang didelegasikan dengan mengikuti langkah-langkah berikut:
- Masuk ke pusat admin Microsoft Entra
- Telusuri ke Identitas>Aplikasi>pendaftaran aplikasi, lalu pilih aplikasi klien Anda
- Di bawah Kelola, pilih Izin API
- Pilih Tambahkan izin
- Pilih tab API yang digunakan organisasi saya
- Ketik Komputer Planet Azure Orbital di bidang pencarian
- Pilih entri yang cocok (ID aplikasi harus 6388acc4-795e-43a9-a320-33075c1eb83b). Ini muncul sebagai Azure Orbital Microsoft Planetary Computer Pro.
- Pilih kotak Izin yang didelegasikan . Centang kotak di samping user_impersonation.
- Pilih Tambahkan izin
- Pilih tautan "Berikan persetujuan admin" (dengan asumsi niat Anda adalah memberikan persetujuan admin di penyewa untuk izin ini)
Pola autentikasi yang didelegasikan juga digunakan saat menyambungkan dari QGIS.
Konfigurasi RBAC Microsoft Planetary Computer Pro untuk aplikasi
Setelah Anda membuat Identitas terkelola untuk aplikasi yang berjalan di Azure, atau perwakilan layanan untuk aplikasi yang tidak berjalan di Azure tetapi terdaftar di Microsoft Entra, Anda perlu memberikan izin yang tepat kepada identitas untuk mengakses sumber daya GeoCatalog melalui konfigurasi RBAC.
Di bawah ini adalah contoh langkah demi langkah yang menunjukkan cara mengonfigurasi Role-Based Access Control (RBAC) untuk menetapkan peran "Administrator GeoCatalog" ke identitas terkelola yang ditetapkan pengguna aplikasi. Anda dapat mengikuti langkah-langkah yang sama ini di portal Microsoft Azure untuk mengonfigurasi RBAC untuk perwakilan layanan aplikasi.
Pada portal Azure, buka tab IAM di sumber daya Microsoft Planetary Computer Pro pada bilah kiri.
Pilih Tambahkan penetapan peran lalu pilih Administrator GeoCatalog di bawah "Peran fungsi pekerjaan"
Pilih tombol Berikutnya lalu pilih opsi radio Identitas Terkelola
Pilih Pilih anggota dan pilih langganan dan Identitas terkelola yang ditetapkan pengguna pada panel Pilih identitas terkelola di sisi kanan.
Pilih Berikutnya untuk memverifikasi informasi dan menyelesaikan tinjau + tetapkan.
Memperoleh token akses untuk mengakses Microsoft Planetary Computer Pro
Setelah Anda mengonfigurasi RBAC untuk memberikan izin yang tepat kepada aplikasi Anda, aplikasi perlu memperoleh token akses untuk mengautentikasi permintaan. Kode sampel Python di bawah ini:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com/")
headers = {"Authorization": f"Bearer {token.token}"}
Nota
Jika aplikasi Anda memiliki beberapa identitas terkelola yang ditetapkan padanya, Anda harus secara eksplisit meneruskan identitas yang tepat: azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>). Atau, Anda dapat mengonfigurasi variabel lingkungan aplikasi Anda di portal Microsoft Azure untuk ditambahkan "AZURE_CLIENT_ID" dengan ID klien identitas terkelola yang tepat.
Nota
Anda dapat menambahkan .default atau user_impersonation sebagai cakupan ke credential.get_token() berdasarkan perilaku autentikasi pengguna yang Anda harapkan.
Nota
Jika aplikasi Anda adalah aplikasi web, kapan saja Anda membuat perubahan pada kode atau konfigurasi aplikasi, pastikan untuk menutup dan membuka kembali browser web untuk menghindari kredensial cache yang digunakan.
Lihat Token akses di platform identitas Microsoft untuk informasi selengkapnya tentang token akses. Ketika Anda memperoleh token akses melalui panggilan DefaultAzureCredentials(), token yang diperoleh di-cache oleh instans kredensial. Masa pakai dan penyegaran token ditangani secara otomatis. Anda dapat meneruskan instans DefaultAzureCredential di sekitar dan memanggil GetToken() atau GetTokenAsync() tepat sebelum Anda memerlukan token sehingga Anda selalu mendapatkan token yang tidak kedaluwarsa. Jika Anda perlu mempertahankan sesi terbuka yang panjang, Anda dapat mengatasi kedaluwarsa token dalam pengendali kesalahan untuk menangkap pengecualian dan mendapatkan token baru.
Jika Anda tidak dapat menggunakan DefaultAzureCredentials() dan sebaliknya menggunakan metode lain seperti AzureCliCredential() untuk memperoleh token akses, Anda perlu mengelola masa pakai dan refresh token. Lihat Masa berlaku token yang dapat dikonfigurasi di platform identitas Microsoft dan Token Refresh di platform identitas Microsoft untuk informasi lebih lanjut.