Menggunakan identitas terkelola untuk menyambungkan Azure SQL Database ke aplikasi yang disebarkan ke Azure Spring Apps

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Java ✔️ C#

Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise

Artikel ini memperlihatkan kepada Anda cara membuat identitas terkelola untuk aplikasi yang disebarkan ke Azure Spring Apps dan menggunakannya untuk mengakses Azure SQL Database.

Azure SQL Database adalah layanan database relasional yang cerdas, terukur, dan dibuat untuk cloud. Itu selalu terperbaharui, dengan fitur bertenaga AI dan otomatis yang mengoptimalkan kinerja dan daya tahan. Opsi komputasi tanpa server dan penyimpanan Hyperscale secara otomatis menskalakan sumber daya sesuai permintaan, sehingga Anda dapat fokus membangun aplikasi baru tanpa mengkhawatirkan ukuran penyimpanan atau manajemen sumber daya.

Prasyarat

  • Akun Azure dengan langganan aktif. Buat akun secara gratis.
  • Azure CLI versi 2.45.0 atau yang lebih tinggi.
  • Ikuti tutorial Spring Data JPA untuk menyediakan Azure SQL Database dan membuatnya berfungsi dengan aplikasi Java secara lokal.
  • Ikuti tutorial identitas terkelola yang ditetapkan sistem Azure Spring Apps untuk memprovisikan aplikasi di Azure Spring Apps dengan identitas terkelola diaktifkan.

Koneksi ke Azure SQL Database dengan identitas terkelola

Anda dapat menyambungkan aplikasi Anda ke Azure SQL Database dengan identitas terkelola dengan mengikuti langkah-langkah manual atau menggunakan Service Koneksi or.

Memberikan izin ke identitas terkelola

Sambungkan ke server SQL Anda dan jalankan kueri SQL berikut:

CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<managed-identity-name>];
GO

Nilai <managed-identity-name> tempat penampung mengikuti aturan <service-instance-name>/apps/<app-name>; misalnya: myspringcloud/apps/sqldemo. Anda juga bisa menggunakan perintah berikut untuk mengkueri nama identitas terkelola dengan Azure CLI:

az ad sp show --id <identity-object-ID> --query displayName

Mengonfigurasi aplikasi Java Anda untuk menggunakan identitas terkelola

Buka file src/main/resources/application.properties, lalu tambahkan Authentication=ActiveDirectoryMSI; di akhir spring.datasource.url baris, seperti yang ditunjukkan dalam contoh berikut. Pastikan untuk menggunakan nilai yang benar untuk variabel $AZ_DATABASE_NAME.

spring.datasource.url=jdbc:sqlserver://$AZ_DATABASE_NAME.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;Authentication=ActiveDirectoryMSI;

Build dan sebarkan aplikasi ke Azure Spring Apps

Bangun ulang aplikasi dan sebarkan ke Azure Spring Apps yang disediakan di poin poin kedua di bawah Prasyarat. Anda sekarang memiliki aplikasi Spring Boot yang diautentikasi oleh identitas terkelola yang menggunakan JPA untuk menyimpan dan mengambil data dari Azure SQL Database di Azure Spring Apps.

Langkah berikutnya