Bagikan melalui


Mengautentikasi aplikasi Go ke layanan Azure dengan menggunakan pustaka Azure Identity

Aplikasi dapat menggunakan pustaka Identitas Azure untuk mengautentikasi ke ID Microsoft Entra, yang memberikan akses ke 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 berikut menjelaskan pendekatan yang direkomendasikan untuk mengautentikasi aplikasi ke ID Microsoft Entra di berbagai lingkungan saat menggunakan pustaka klien Azure SDK.

Autentikasi berbasis token melalui ID Microsoft Entra adalah pendekatan yang direkomendasikan untuk mengautentikasi aplikasi ke Azure, alih-alih menggunakan string koneksi atau opsi berbasis kunci. Modul klien Azure Identity untuk Go menyediakan autentikasi berbasis token dan memungkinkan aplikasi 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 string koneksi 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. Pendekatan ini mengikuti prinsip hak istimewa paling sedikit. Sebaliknya, string koneksi memberikan hak penuh ke sumber daya Azure.
  • Saat menggunakan identitas terkelola untuk autentikasi berbasis token, Azure menangani fungsi administratif untuk Anda, sehingga Anda tidak perlu khawatir tentang tugas seperti mengamankan atau memutar rahasia. Fitur ini membuat aplikasi lebih aman karena tidak ada string koneksi atau rahasia aplikasi yang dapat disusupi.
  • String koneksi secara fungsional setara dengan kredensial dan memerlukan penanganan khusus untuk mencegah kebocoran yang tidak disengaja. Anda harus menyimpannya dengan aman (misalnya, di Azure Key Vault) dan tidak pernah melakukan hardcode di aplikasi Anda atau menerapkannya ke kontrol sumber. Microsoft Secure Future Initiative (SFI) melarang penggunaan string koneksi dan rahasia berumur panjang serupa karena dapat digunakan untuk membahayakan aplikasi Anda jika tidak dikelola dengan hati-hati.
  • Pustaka Azure Identity memperoleh dan mengelola token Microsoft Entra untuk Anda.

Batasi penggunaan string koneksi ke 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 jenis kredensial di pustaka Azure Identity untuk mengautentikasi ke sumber daya Azure.

Autentikasi di berbagai lingkungan

Jenis autentikasi berbasis token yang 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:

  • Dihosting di Azure: Aplikasi harus mengautentikasi ke sumber daya Azure dengan menggunakan identitas terkelola. Untuk informasi selengkapnya, lihat autentikasi di lingkungan server.
  • Berjalan secara lokal selama pengembangan: Aplikasi dapat mengautentikasi ke Azure dengan menggunakan perwakilan layanan aplikasi untuk pengembangan lokal atau kredensial Azure pengembang. Untuk informasi selengkapnya, lihat autentikasi selama pengembangan lokal.
  • Dihosting secara lokal: Aplikasi harus mengautentikasi ke sumber daya Azure dengan menggunakan perwakilan layanan aplikasi atau, dalam kasus Azure Arc, identitas terkelola. Untuk informasi selengkapnya, lihat autentikasi di lingkungan server.

Autentikasi untuk aplikasi yang dihosting Azure

Saat Anda menghosting aplikasi 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.

Untuk menggunakan identitas terkelola yang ditetapkan pengguna

Anda membuat identitas terkelola yang ditetapkan pengguna sebagai sumber daya Azure mandiri. Anda dapat menetapkannya ke satu atau beberapa sumber daya Azure, yang memungkinkan sumber daya tersebut berbagi identitas dan izin yang sama. Untuk mengautentikasi dengan 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

Anda mengaktifkan identitas terkelola yang ditetapkan sistem langsung pada sumber daya Azure. Identitas terkait dengan siklus hidup sumber daya tersebut dan secara otomatis dihapus saat sumber daya dihapus. Untuk mengautentikasi dengan 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 dengan menggunakan kredensial pengembang atau perwakilan layanan Anda. Metode autentikasi 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. Biasanya, Anda menggunakan alat pengembangan, seperti Azure CLI, yang dapat memberi aplikasi Anda token yang diperlukan untuk mengakses layanan Azure. Metode ini nyaman tetapi hanya boleh digunakan untuk tujuan pengembangan.

Menggunakan perwakilan layanan

Anda membuat perwakilan layanan di penyewa Microsoft Entra untuk mewakili aplikasi dan menggunakannya untuk mengautentikasi 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 mengautentikasi dalam produksi. Namun, ini masih kurang ideal daripada menggunakan identitas terkelola karena kebutuhan akan rahasia.

Autentikasi untuk aplikasi yang dihosting secara lokal

Untuk aplikasi yang dihosting di lokasi, Anda dapat menggunakan prinsipal layanan untuk mengautentikasi ke sumber daya Azure. Metode ini melibatkan pembuatan perwakilan layanan di MICROSOFT Entra ID, menetapkannya izin yang diperlukan, dan mengonfigurasi aplikasi Anda untuk menggunakan kredensialnya. Dengan metode ini, aplikasi lokal Anda dapat mengakses layanan Azure dengan aman.