الاتصال خدمة بحث إلى موارد Azure أخرى باستخدام هوية مدارة

يمكنك تكوين خدمة البحث Azure Cognitive للاتصال بموارد Azure الأخرى باستخدام هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم وتعيين دور Azure. تلغي الهويات المدارة وتعيينات الأدوار الحاجة إلى تمرير الأسرار وبيانات الاعتماد في سلسلة اتصال أو تعليمات برمجية.

المتطلبات الأساسية

السيناريوهات المدعومة

يمكن أن يستخدم البحث المعرفي هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم على الاتصالات الصادرة بموارد Azure. تتم الإشارة إلى الهوية المدارة من قبل النظام عندما تكون سلسلة الاتصال هي معرف المورد الفريد لخدمة أو تطبيق Azure AD-aware . يتم تحديد هوية مدارة معينة من قبل المستخدم من خلال خاصية "الهوية".

تستخدم خدمة البحث Azure Storage كمصدر بيانات مفهرس وكبالوعة بيانات لجلسات تصحيح الأخطاء والتخزين المؤقت للإثراء ومخزن المعارف. بالنسبة إلى ميزات البحث التي تكتب مرة أخرى إلى التخزين، تحتاج الهوية المدارة إلى تعيين دور مساهم كما هو موضح في قسم "تعيين دور ".

السيناريو الهوية المدارة من قبل النظام الهوية المدارة المعينة من قبل المستخدم (المعاينة)
اتصالات المفهرس بمصادر بيانات Azure المدعومة1 نعم نعم
Azure Key Vault للمفاتيح المدارة من قبل العميل نعم نعم
جلسات تصحيح الأخطاء (المستضافة في Azure Storage)1 نعم لا
ذاكرة التخزين المؤقت للإثراء (المستضافة في Azure Storage)1,2 نعم نعم
مخزن المعارف (مستضاف في Azure Storage)1 نعم نعم
المهارات المخصصة (المستضافة في وظائف Azure أو ما يعادلها) نعم نعم

1 للاتصال بين البحث والتخزين، يفرض تكوين أمان الشبكة قيودا على نوع الهوية المدارة التي يمكنك استخدامها. يمكن استخدام هوية مدارة من قبل النظام فقط للاتصال بنفس المنطقة بالتخزين عبر استثناء الخدمة الموثوق به أو قاعدة مثيل المورد. راجع الوصول إلى حساب تخزين محمي بالشبكة للحصول على التفاصيل.

2 توجد إحدى الطرق لتحديد ذاكرة تخزين مؤقت للإثراء في معالج استيراد البيانات. حاليا، لا يقبل المعالج سلسلة اتصال هوية مدارة لذاكرة التخزين المؤقت للإثراء. ومع ذلك، بعد اكتمال المعالج، يمكنك تحديث سلسلة الاتصال في تعريف JSON المفهرس لتحديد إما نظام أو هوية مدارة معينة من قبل المستخدم، ثم إعادة تشغيل المفهرس.

إنشاء هوية مدارة من قبل النظام

عند تمكين هوية مدارة معينة من قبل النظام، يقوم Azure بإنشاء هوية لخدمة البحث الخاصة بك والتي يمكن استخدامها للمصادقة على خدمات Azure الأخرى داخل نفس المستأجر والاشتراك. يمكنك بعد ذلك استخدام هذه الهوية في تعيينات التحكم في الوصول المستندة إلى دور Azure (Azure RBAC) التي تسمح بالوصول إلى البيانات أثناء الفهرسة.

الهوية المدارة المعينة من قبل النظام فريدة من نوعها لخدمة البحث الخاصة بك ومرتبطة بالخدمة طوال عمرها.

  1. سجل الدخول إلى مدخل Azureوابحث عن خدمة البحث.

  2. ضمن الإعدادات، حدد الهوية.

  3. في علامة التبويب النظام المعين ، ضمن الحالة، حدد تشغيل.

  4. حدد ⁧⁩حفظ⁧⁩.

    Screenshot of the Identity page in Azure portal.

    بعد الحفظ، سترى معرف كائن تم تعيينه لخدمة البحث.

    Screenshot of a system identity object identifier.

إنشاء هوية مدارة معينة من قبل المستخدم (معاينة)

الهوية المدارة المعينة من قبل المستخدم هي مورد على Azure. من المفيد إذا كنت بحاجة إلى مزيد من الدقة في تعيينات الأدوار لأنه يمكنك إنشاء هويات منفصلة لتطبيقات وسيناريوهات مختلفة.

هام

هذه الميزة في المعاينة العامة بموجب شروط الاستخدام التكميلية. الهويات المدارة المعينة من قبل المستخدم غير مدعومة حاليا للاتصالات بحساب تخزين محمي بالشبكة. يتطلب طلب البحث حاليا عنوان IP عاما.

  1. ⁩تسجيل الدخول إلى مدخل Azure⁧

  2. حدد + Create a resource.

  3. في شريط البحث "البحث عن الخدمات والسوق"، ابحث عن "الهوية المدارة المعينة من قبل المستخدم"، ثم حدد إنشاء.

    Screenshot of the user assigned managed identity tile in Azure marketplace.

  4. حدد الاشتراك ومجموعة الموارد والمنطقة. امنح الهوية اسما وصفيا.

  5. حدد إنشاء وانتظر حتى ينتهي المورد من النشر.

    في الخطوات العديدة التالية، ستقوم بتعيين الهوية المدارة المعينة من قبل المستخدم لخدمة البحث.

  6. في صفحة خدمة البحث، ضمن الإعدادات، حدد الهوية.

  7. في علامة التبويب ⁧⁩ تم تعيينه بواسطة المستخدم ⁧⁩، حدد ⁧⁩ إضافة ⁧⁩.

  8. اختر الاشتراك، ثم حدد المورد المدار المعين من قبل المستخدم والذي قمت بإنشائه في الخطوة السابقة.

السماح بالوصول إلى جدار الحماية

إذا كان مورد Azure خلف جدار حماية، فتأكد من وجود قاعدة واردة تقبل الطلبات الواردة من خدمة البحث.

تعيين دور

يجب إقران الهوية المدارة بدور Azure الذي يحدد الأذونات على مورد Azure.

  • هناك حاجة إلى أذونات قارئ البيانات لاتصالات بيانات المفهرس وللوصول إلى مفتاح مدار من قبل العميل في Azure Key Vault.

  • هناك حاجة إلى أذونات المساهم (الكتابة) لميزات الإثراء الذكاء الاصطناعي التي تستخدم Azure Storage لاستضافة بيانات جلسة تصحيح الأخطاء والتخزين المؤقت للإثراء وتخزين المحتوى على المدى الطويل في مخزن المعارف.

الخطوات التالية مخصصة لتخزين Azure. إذا كان المورد الخاص بك هو Cosmos DB أو Azure SQL، فإن الخطوات متشابهة.

  1. سجل الدخول إلى مدخل Azure وابحث عن مورد Azure الذي يجب أن يكون لخدمة البحث حق الوصول إليه.

  2. في Azure Storage، حدد التحكم في الوصول (AIM) في جزء التنقل الأيمن.

  3. حدد Add role assignment.

  4. في صفحة الدور ، اختر دورا:

    الدور الاستخدام
    القارئ والوصول إلى البيانات يمنح أذونات القراءة للوصول إلى المفهرس إلى المحتوى في Azure Table Storage وAzure File Storage.
    قارئ بيانات للبيانات الثنائية الكبيرة للتخزين يمنح أذونات القراءة لوصول المفهرس إلى المحتوى في Blob Storage و Azure Data Lake Storage Gen2.
    مساهم بيانات للبيانات الثنائية الكبيرة للتخزين يمنح أذونات الكتابة اللازمة لجلسات تصحيح الأخطاء وإسقاطات كائن مخزن المعرفة وذاكرة التخزين المؤقت للإثراء.
    مساهم بيانات جدول التخزين يمنح أذونات الكتابة اللازمة لإسقاطات جدول مخزن المعرفة.
  5. في صفحة الأعضاء ، حدد الهوية المدارة.

  6. حدد الأعضاء. في الصفحة تحديد الهوية المدارة ، اختر اشتراكك ثم قم بالتصفية حسب نوع الخدمة، ثم حدد الخدمة. فقط تلك الخدمات التي لها هوية مدارة ستكون متاحة للاختيار.

    Screenshot of the select managed identity pane in the role assignment wizard.

  7. حدد Review + Assign.

أمثلة سلسلة الاتصال

بمجرد تعريف هوية مدارة لخدمة البحث ومنحها تعيين دور، يمكن تعديل الاتصالات الصادرة لاستخدام معرف المورد الفريد لمورد Azure الآخر. فيما يلي بعض الأمثلة على سلاسل الاتصال لسيناريوهات مختلفة.

مصدر بيانات النقطة (النظام):

يتضمن مصدر بيانات المفهرس خاصية "بيانات الاعتماد" التي تحدد كيفية إجراء الاتصال بمصدر البيانات. يوضح المثال التالي سلسلة اتصال تحدد معرف المورد الفريد لحساب تخزين. سيقوم Azure AD بمصادقة الطلب باستخدام الهوية المدارة من قبل النظام لخدمة البحث. لاحظ أن سلسلة الاتصال لا تتضمن حاوية. في تعريف مصدر البيانات، يتم تحديد اسم حاوية في الخاصية "حاوية" (غير معروضة)، وليس في سلسلة الاتصال.

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

مصدر بيانات Blob (المستخدم):

يمكن أيضا إجراء طلب بحث إلى Azure Storage ضمن هوية مدارة معينة من قبل المستخدم، وهي قيد المعاينة حاليا. يتم تحديد هوية مستخدم خدمة البحث في الخاصية "الهوية". يمكنك استخدام البوابة الإلكترونية أو إصدار معاينة واجهة برمجة تطبيقات REST 2021-04-30-Preview لتعيين الهوية.

"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}"
  }

مخزن المعرفة:

يتضمن تعريف مخزن المعارف سلسلة اتصال ب Azure Storage. على Azure Storage، سيقوم مخزن المعرفة بإنشاء إسقاطات كنقط وجداول. سلسلة الاتصال هي معرف المورد الفريد لحساب التخزين الخاص بك. لاحظ أن السلسلة لا تتضمن حاويات أو جداول في المسار. يتم تعريفها في تعريف الإسقاط المضمن، وليس في سلسلة الاتصال.

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

ذاكرة التخزين المؤقت للإثراء:

يقوم المفهرس بإنشاء واستخدام وتذكر الحاوية المستخدمة في عمليات الإثراء المخزنة مؤقتا. ليس من الضروري تضمين الحاوية في سلسلة اتصال ذاكرة التخزين المؤقت. يمكنك العثور على معرف الكائن في صفحة الهوية لخدمة البحث في البوابة الإلكترونية.

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

جلسة تصحيح الأخطاء:

يتم تشغيل جلسة عمل تصحيح الأخطاء في البوابة الإلكترونية وتأخذ سلسلة اتصال عند بدء جلسة العمل. يمكنك لصق سلسلة مشابهة للمثال التالي.

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

مهارة مخصصة:

تستهدف المهارة المخصصة نقطة نهاية وظيفة Azure أو رمز مخصص لاستضافة التطبيق. يتم تحديد نقطة النهاية في تعريف المهارة المخصصة. يخبر وجود "authResourceId" خدمة البحث بالاتصال باستخدام هوية مدارة ، وتمرير معرف التطبيق للوظيفة المستهدفة أو التطبيق في الخاصية.

{
  "@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": [ ...]
}

راجع أيضًا