Menyambungkan layanan pencarian ke sumber daya Azure lainnya menggunakan identitas terkelola

Anda dapat mengonfigurasi layanan Azure Cognitive Search untuk menyambungkan ke sumber daya Azure lainnya menggunakan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna dan penetapan peran Azure. Identitas terkelola dan penetapan peran menghilangkan kebutuhan untuk meneruskan rahasia dan kredensial dalam string atau kode koneksi.

Prasyarat

  • Layanan pencarian di tingkat Dasar atau di atasnya.

  • Sumber daya Azure yang menerima permintaan masuk dari login Azure Active Directory yang memiliki penetapan peran yang valid.

Skenario yang didukung

Cognitive Search dapat menggunakan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna pada koneksi keluar ke sumber daya Azure. Identitas terkelola sistem ditunjukkan ketika string koneksi adalah ID sumber daya unik dari layanan atau aplikasi yang sadar Azure AD. Identitas terkelola yang ditetapkan pengguna ditentukan melalui properti "identitas".

Layanan pencarian menggunakan Azure Storage sebagai sumber data pengindeks dan sebagai sink data untuk sesi debug, penembolokan pengayaan, dan penyimpanan pengetahuan. Untuk fitur pencarian yang menulis kembali ke penyimpanan, identitas terkelola memerlukan penetapan peran kontributor seperti yang dijelaskan di bagian "Tetapkan peran" .

Skenario Identitas terkelola sistem Identitas terkelola yang ditetapkan pengguna (pratinjau)
Koneksi pengindeks ke sumber data Azure yang didukung1 Ya Ya
Azure Key Vault untuk kunci yang dikelola pelanggan Ya Ya
Sesi debug (dihosting di Azure Storage)1 Ya Tidak
Cache pengayaan (dihosting di Azure Storage)1,2 Ya Ya
Penyimpanan Pengetahuan (dihosting di Azure Storage)1 Ya Ya
Keterampilan kustom (dihosting dalam Azure Functions atau setara) Ya Ya

1 Untuk konektivitas antara pencarian dan penyimpanan, konfigurasi keamanan jaringan Anda memberlakukan batasan jenis identitas terkelola yang dapat Anda gunakan. Hanya identitas terkelola sistem yang dapat digunakan untuk koneksi wilayah yang sama ke penyimpanan melalui pengecualian layanan tepercaya atau aturan instans sumber daya. Lihat Akses ke akun penyimpanan yang dilindungi jaringan untuk detailnya.

2 Satu metode untuk menentukan cache pengayaan ada di wizard Impor data. Saat ini, wizard tidak menerima string koneksi identitas terkelola untuk cache pengayaan. Namun, setelah wizard selesai, Anda dapat memperbarui string koneksi dalam definisi JSON pengindeks untuk menentukan sistem atau identitas terkelola yang ditetapkan pengguna, lalu menjalankan ulang pengindeks.

Membuat identitas terkelola sistem

Saat identitas terkelola yang ditetapkan sistem diaktifkan, Azure membuat identitas untuk layanan pencarian Anda yang dapat digunakan untuk mengautentikasi ke layanan Azure lainnya dalam penyewa dan langganan yang sama. Anda kemudian dapat menggunakan identitas ini dalam penetapan kontrol akses berbasis peran Azure (Azure RBAC) yang memungkinkan akses ke data selama pengindeksan.

Identitas terkelola yang ditetapkan sistem unik untuk layanan pencarian Anda dan terikat ke layanan selama masa pakainya.

  1. Masuk ke portal Azure dan temukan layanan pencarian Anda.

  2. Di Pengaturan, pilih Identitas.

  3. Pada tab Sistem yang ditetapkan , di bawah Status, pilih Aktif.

  4. Pilih Simpan.

    Cuplikan layar halaman Identitas di portal Azure.

    Setelah menyimpan, Anda akan melihat pengidentifikasi objek yang telah ditetapkan ke layanan pencarian Anda.

    Cuplikan layar pengidentifikasi objek identitas sistem.

Membuat identitas terkelola yang ditetapkan pengguna (pratinjau)

Identitas terkelola yang ditetapkan pengguna adalah sumber daya di Azure. Ini berguna jika Anda membutuhkan lebih banyak granularitas dalam penetapan peran karena Anda dapat membuat identitas terpisah untuk aplikasi dan skenario yang berbeda.

Penting

Fitur ini berada di pratinjau publik dalam ketentuan penggunaan tambahan. Identitas terkelola yang ditetapkan pengguna saat ini tidak didukung untuk koneksi ke akun penyimpanan yang dilindungi jaringan. Permintaan pencarian saat ini memerlukan alamat IP publik.

  1. Masuk ke portal Azure

  2. Pilih + Buat sumber daya.

  3. Di bilah pencarian "Cari layanan dan marketplace", cari "Identitas Terkelola Yang Ditetapkan Pengguna" lalu pilih Buat.

    Cuplikan layar petak identitas terkelola yang ditetapkan pengguna di Marketplace Azure.

  4. Pilih langganan, grup sumber daya, dan wilayah. Beri nama yang deskriptif pada identitas tersebut.

  5. Pilih Buat dan tunggu hingga sumber daya selesai disebarkan.

    Dalam beberapa langkah berikutnya, Anda akan menetapkan identitas terkelola yang ditetapkan pengguna ke layanan pencarian Anda.

  6. Di halaman layanan pencarian Anda, di bawah Pengaturan, pilih Identitas.

  7. Pada tab Ditetapkan pengguna, pilih Tambahkan.

  8. Pilih langganan lalu pilih sumber daya terkelola yang ditetapkan pengguna yang Anda buat di langkah sebelumnya.

Perbolehkan akses firewall

Jika sumber daya Azure Anda berada di belakang firewall, pastikan ada aturan masuk yang mengakui permintaan dari layanan pencarian Anda.

Menetapkan peran

Identitas terkelola harus dipasangkan dengan peran Azure yang menentukan izin pada sumber daya Azure.

  • Izin pembaca data diperlukan untuk koneksi data pengindeks dan untuk mengakses kunci yang dikelola pelanggan di Azure Key Vault.

  • Izin kontributor (tulis) diperlukan untuk fitur pengayaan AI yang menggunakan Azure Storage untuk menghosting data sesi debug, penembolokan pengayaan, dan penyimpanan konten jangka panjang di penyimpanan pengetahuan.

Langkah-langkah berikut adalah untuk Azure Storage. Jika sumber daya Anda adalah Azure Cosmos DB atau Azure SQL, langkah-langkahnya serupa.

  1. Masuk ke portal Azure dan temukan sumber daya Azure Anda yang harus diakses oleh layanan pencarian.

  2. Di Azure Storage, pilih Kontrol akses (AIM) di panel navigasi kiri.

  3. Pilih Tambahkan penetapan peran.

  4. Pada halaman Peran , pilih peran yang diperlukan untuk layanan pencarian Anda:

    Tugas Penetapan peran
    Pengindeksan blob menggunakan pengindeks Menambahkan Pembaca Data Blob Penyimpanan
    Pengindeksan ADLS Gen2 menggunakan pengindeks Menambahkan Pembaca Data Blob Penyimpanan
    Pengindeksan tabel menggunakan pengindeks Menambahkan Pembaca dan Akses Data
    Pengindeksan file menggunakan pengindeks Menambahkan Pembaca dan Akses Data
    Menulis ke penyimpanan pengetahuan Tambahkan Storage Blob DataContributor untuk proyeksi objek dan file, serta Akses Pembaca dan Data untuk proyeksi tabel.
    Menulis ke cache pengayaan Tambahkan Kontributor Data Blob Penyimpanan
    Simpan status sesi debug Tambahkan Kontributor Data Blob Penyimpanan
  5. Pada halaman Anggota , pilih Identitas Terkelola.

  6. Pilih anggota. Di halaman Pilih identitas terkelola , pilih langganan Anda lalu filter menurut jenis layanan, lalu pilih layanan. Hanya layanan yang memiliki identitas terkelola yang akan tersedia untuk dipilih.

    Cuplikan layar panel pilih identitas terkelola di wizard penetapan peran.

  7. Pilih Tinjau + tetapkan.

Contoh string koneksi

Setelah identitas terkelola ditentukan untuk layanan pencarian dan diberi penetapan peran, koneksi keluar dapat dimodifikasi untuk menggunakan ID sumber daya unik dari sumber daya Azure lainnya. Berikut adalah beberapa contoh string koneksi untuk berbagai skenario.

Sumber data blob (sistem):

Sumber data pengindeks menyertakan properti "kredensial" yang menentukan bagaimana koneksi dibuat ke sumber data. Contoh berikut menunjukkan string koneksi yang menentukan ID sumber daya unik akun penyimpanan. Azure AD akan mengautentikasi permintaan menggunakan identitas terkelola sistem dari layanan pencarian. Perhatikan bahwa string koneksi tidak menyertakan kontainer. Dalam definisi sumber data, nama kontainer ditentukan dalam properti "kontainer" (tidak ditampilkan), bukan string koneksi.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    }

Sumber data blob (pengguna):

Permintaan pencarian ke Azure Storage juga dapat dibuat di bawah identitas terkelola yang ditetapkan pengguna, yang saat ini dalam pratinjau. Identitas pengguna layanan pencarian ditentukan dalam properti "identitas". Anda dapat menggunakan portal atau pratinjau REST API versi 2021-04-30-Preview untuk mengatur identitas.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    },
  . . .
"identity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
  }

Penyimpanan pengetahuan:

Definisi penyimpanan pengetahuan menyertakan string koneksi ke Azure Storage. Di Azure Storage, penyimpanan pengetahuan akan membuat proyeksi sebagai blob dan tabel. String koneksi adalah ID sumber daya unik dari akun penyimpanan Anda. Perhatikan bahwa string tidak menyertakan kontainer atau tabel di jalur. Ini didefinisikan dalam definisi proyeksi yang disematkan, bukan string koneksi.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/storage-account-name};"
}

Cache pengayaan:

Pengindeks membuat, menggunakan, dan mengingat kontainer yang digunakan untuk pengayaan cache. Tidak perlu menyertakan kontainer dalam string koneksi cache. Anda dapat menemukan ID objek di halaman Identitas layanan pencarian Anda di portal.

"cache": {
  "enableReprocessing": true,
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Sesi debug:

Sesi debug berjalan di portal dan mengambil string koneksi saat Anda memulai sesi. Anda dapat menempelkan string yang mirip dengan contoh berikut.

"ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}/{container-name};",

Keterampilan kustom:

Keterampilan kustom menargetkan titik akhir fungsi Azure atau kode kustom hosting aplikasi. Titik akhir ditentukan dalam definisi keterampilan kustom. Kehadiran "authResourceId" memberi tahu layanan pencarian untuk terhubung menggunakan identitas terkelola, meneruskan ID aplikasi fungsi atau aplikasi target di properti .

{
  "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
  "description": "A custom skill that can identify positions of different phrases in the source text",
  "uri": "https://contoso.count-things.com",
  "authResourceId": "<Azure-AD-registered-application-ID>",
  "batchSize": 4,
  "context": "/document",
  "inputs": [ ... ],
  "outputs": [ ...]
}

Lihat juga