Bagikan melalui


Mengautentikasi aplikasi Python ke layanan Azure menggunakan pustaka identitas Azure

Aplikasi dapat menggunakan pustaka identitas Azure untuk mengautentikasi ke Microsoft Entra ID, yang memungkinkan aplikasi mengakses layanan dan sumber daya Azure. Persyaratan autentikasi ini berlaku apakah aplikasi disebarkan ke Azure, dihosting secara lokal, atau berjalan secara lokal di stasiun kerja pengembang. Bagian di depan menjelaskan pendekatan yang direkomendasikan untuk mengautentikasi aplikasi untuk Microsoft Entra ID di berbagai lingkungan saat menggunakan pustaka klien Azure SDK.

Autentikasi berbasis token melalui Microsoft Entra ID adalah pendekatan yang direkomendasikan untuk mengautentikasi aplikasi ke Azure, alih-alih menggunakan string koneksi atau opsi berbasis kunci. Pustaka identitas Azure menyediakan kelas yang mendukung autentikasi berbasis token dan memungkinkan aplikasi untuk mengautentikasi ke sumber daya Azure apakah aplikasi berjalan secara lokal, di Azure, atau di server lokal.

Keuntungan autentikasi berbasis token

Autentikasi berbasis token menawarkan keuntungan berikut daripada string koneksi:

  • Autentikasi berbasis token memastikan hanya aplikasi tertentu yang dimaksudkan untuk mengakses sumber daya Azure yang dapat melakukannya, sedangkan siapa pun atau aplikasi apa pun dengan connection string dapat terhubung ke sumber daya Azure.
  • Autentikasi berbasis token memungkinkan Anda membatasi akses sumber daya Azure lebih lanjut hanya untuk izin tertentu yang diperlukan oleh aplikasi. Ini mengikuti prinsip hak akses minimum. Sebaliknya, connection string memberikan hak penuh atas sumber daya Azure.
  • Saat menggunakan identitas terkelola untuk autentikasi berbasis token, Azure menangani fungsi administratif untuk Anda, jadi Anda tidak perlu khawatir tentang tugas seperti mengamankan atau mengganti rahasia. Ini membuat aplikasi lebih aman karena tidak ada 'connection string' atau 'rahasia aplikasi' yang berpotensi disusupi.
  • Pustaka identitas Azure memperoleh dan mengelola token Microsoft Entra untuk Anda.

Penggunaan string koneksi harus terbatas pada skenario di mana autentikasi berbasis token bukan opsi, aplikasi bukti konsep awal, atau prototipe pengembangan yang tidak mengakses data produksi atau sensitif. Jika memungkinkan, gunakan kelas autentikasi berbasis token yang tersedia di pustaka identitas Azure untuk mengautentikasi ke sumber daya Azure.

Autentikasi di berbagai lingkungan

Jenis autentikasi berbasis token tertentu yang harus digunakan aplikasi untuk mengautentikasi ke sumber daya Azure bergantung pada tempat aplikasi berjalan. Diagram berikut menyediakan panduan untuk skenario dan lingkungan yang berbeda:

Diagram yang menunjukkan strategi autentikasi berbasis token yang direkomendasikan untuk aplikasi tergantung tempatnya berjalan.

Saat aplikasi:

  • Hosted di Azure: Aplikasi harus mengautentikasi ke sumber daya Azure menggunakan identitas terkelola. Opsi ini dibahas secara lebih rinci pada autentikasi di lingkungan server.
  • Berjalan secara lokal selama pengembangan: Aplikasi dapat mengautentikasi ke Azure menggunakan akun pengembang, broker, atau prinsipal layanan. Setiap opsi dibahas secara lebih rinci pada autentikasi selama pengembangan lokal.
  • Dihosting di lokal: Aplikasi harus mengotentikasi sumber daya Azure menggunakan perwakilan layanan aplikasi, atau identitas terkelola dalam kasus Azure Arc. Alur kerja lokal dibahas secara lebih rinci di Autentikasi untuk aplikasi yang dihost di lokal.

Autentikasi untuk aplikasi yang dihosting Azure

Saat aplikasi Anda dihosting di Azure, aplikasi dapat menggunakan identitas terkelola untuk mengautentikasi ke sumber daya Azure tanpa perlu mengelola kredensial apa pun. Ada dua jenis identitas terkelola: ditetapkan pengguna dan ditetapkan sistem.

Gunakan identitas terkelola yang ditetapkan pengguna

Identitas terkelola yang ditetapkan pengguna dibuat sebagai sumber daya Azure mandiri. Ini dapat ditetapkan ke satu atau beberapa sumber daya Azure, memungkinkan sumber daya tersebut berbagi identitas dan izin yang sama. Untuk mengautentikasi menggunakan identitas terkelola yang ditetapkan pengguna, buat identitas, tetapkan ke sumber daya Azure Anda, lalu konfigurasikan aplikasi Anda untuk menggunakan identitas ini untuk autentikasi dengan menentukan ID klien, ID sumber daya, atau ID objeknya.

Gunakan identitas terkelola yang ditetapkan sistem

Identitas terkelola yang ditetapkan sistem diaktifkan langsung pada sumber daya Azure. Identitas terkait dengan siklus hidup sumber daya tersebut dan secara otomatis dihapus saat sumber daya dihapus. Untuk mengautentikasi menggunakan identitas terkelola yang ditetapkan sistem, aktifkan identitas pada sumber daya Azure Anda lalu konfigurasikan aplikasi Anda untuk menggunakan identitas ini untuk autentikasi.

Autentikasi selama pengembangan lokal

Selama pengembangan lokal, Anda dapat mengautentikasi ke sumber daya Azure menggunakan kredensial pengembang atau prinsipal layanan. Ini memungkinkan Anda menguji logika autentikasi aplikasi tanpa menyebarkannya ke Azure.

Menggunakan kredensial pengembang

Anda dapat menggunakan kredensial Azure Anda sendiri untuk mengautentikasi ke sumber daya Azure selama pengembangan lokal. Ini biasanya dilakukan menggunakan alat pengembangan, seperti Azure CLI atau Visual Studio Code, yang dapat memberi aplikasi Anda token yang diperlukan untuk mengakses layanan Azure. Metode ini nyaman tetapi hanya boleh digunakan untuk tujuan pengembangan.

Menggunakan broker

Autentikasi broker mengumpulkan kredensial pengguna menggunakan broker autentikasi sistem untuk mengautentikasi aplikasi. Broker autentikasi sistem berjalan pada komputer pengguna dan mengelola jabat tangan autentikasi dan pemeliharaan token untuk semua akun yang terhubung.

Menggunakan perwakilan layanan

Prinsipal layanan dibuat di penyewa Microsoft Entra untuk mewakili aplikasi dan untuk autentikasi ke sumber daya Azure. Anda dapat mengonfigurasi aplikasi Anda untuk menggunakan kredensial prinsipal layanan selama pengembangan lokal. Metode ini lebih aman daripada menggunakan kredensial pengembang dan lebih dekat dengan cara aplikasi Anda akan mengautentikasi dalam produksi. Namun, masih kurang ideal daripada menggunakan identitas terkelola karena kebutuhan akan rahasia.

Autentikasi untuk aplikasi yang dihosting secara lokal

Untuk aplikasi yang di-hosting di lokasi, Anda dapat menggunakan prinsipal layanan untuk mengautentikasi ke sumber daya Azure. Ini melibatkan pembuatan perwakilan layanan di Microsoft Entra ID, menetapkannya izin yang diperlukan, dan mengonfigurasi aplikasi Anda untuk menggunakan kredensialnya. Metode ini memungkinkan aplikasi lokal Anda mengakses layanan Azure dengan aman.