[مهمل] إنشاء موصل قديم بدون تعليمات برمجية ل Microsoft Sentinel

هام

يتم الآن دعم جمع السجلات من العديد من الأجهزة والأجهزة من قبل تنسيق الأحداث العامة (CEF) عبر AMA أو Syslog عبر AMA أو السجلات المخصصة عبر موصل بيانات AMA في Microsoft Sentinel. لمزيد من المعلومات، راجع البحث عن موصل بيانات Microsoft Sentinel.

هام

هناك إصدار أحدث من Codeless Connector Platform (CCP). لمزيد من المعلومات حول CCP الجديد، راجع إنشاء موصل بدون تعليمات برمجية (معاينة) .

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

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

الموصلات التي تم إنشاؤها باستخدام CCP هي SaaS بالكامل، دون أي متطلبات لتثبيت الخدمة، وتشمل أيضاً مراقبة الصحة والدعم الكامل من Microsoft Azure Sentinel.

قم بإنشاء موصل البيانات الخاص بك عن طريق تعريف تكوينات JSON، مع إعدادات لكيفية ظهور صفحة موصل البيانات في Microsoft Sentinel مع إعدادات الاستقصاء التي تحدد كيفية عمل الاتصال.

هام

هذا الإصدار من Codeless Connector Platform (CCP) قيد المعاينة، ولكنه يعتبر أيضا قديما. تتضمن الشروط التكميلية لمعاينة Azure شروطا قانونية إضافية تنطبق على ميزات Azure الموجودة في الإصدار التجريبي أو المعاينة أو التي لم يتم إصدارها بعد في التوفر العام.

اتّبع الخطوات التالية لإنشاء موصل CCP والاتصال بمصدر البيانات من Microsoft Sentinel:

  • تكوين واجهة مستخدم الموصل
  • تكوين إعدادات استقصاء الموصل
  • توزيع الموصل إلى مساحة عمل Microsoft Sentinel
  • توصيل Microsoft Sentinel بمصدر البيانات وبدء استيعاب البيانات

توضح هذه المقالة بناء الجملة المستخدم في تكوينات CCP JSON وإجراءات نشر الموصل عبر واجهة برمجة التطبيقات أو قالب ARM أو حل Microsoft Sentinel.

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

قبل إنشاء موصل، نوصيك بفهم كيفية تصرف مصدر البيانات وكيفية اتصال Microsoft Sentinel بالضبط.

على سبيل المثال، ستحتاج إلى معرفة أنواع نقاط نهاية المصادقة وقسمة الصفحات وواجهة برمجة التطبيقات المطلوبة للاتصالات الناجحة.

إنشاء ملف تكوين موصل JSON

يحتوي موصل CCP المخصص على قسمين أساسيين من JSON مطلوبين للنشر. املأ هذه المناطق لتحديد كيفية عرض الموصل في مدخل Azure وكيفية توصيل Microsoft Sentinel بمصدر البيانات.

بعد ذلك، إذا قمت بنشر الموصل بدون تعليمات برمجية عبر ARM، فستقوم بتضمين هذه الأقسام في قالب ARM لموصلات البيانات.

راجع موصلات بيانات CCP الأخرى كأمثلة أو قم بتنزيل نموذج المثال، DataConnector_API_CCP_template.json (معاينة).

تكوين واجهة مستخدم الموصل

يصف هذا القسم خيارات التكوين المتوفرة لتخصيص واجهة المستخدم لصفحة موصل البيانات.

تعرض الصورة التالية عينة من صفحة موصل البيانات، مع تمييزها بالأرقام التي تتوافق مع المناطق البارزة من واجهة المستخدم:

لقطة شاشة لعينة صفحة موصل البيانات.

  1. ‏‫العنوان‬. العنوان المعروض لموصل البيانات.
  2. الشعار. الأيقونة المعروضة لموصل البيانات. تخصيص هذا ممكن فقط عند النشر كجزء من الحل.
  3. الحالة. يشير إلى ما إذا كان موصل البيانات متصلا ب Microsoft Sentinel أم لا.
  4. مخططات البيانات. تعرض الاستعلامات ذات الصلة ومقدار البيانات التي جرى استيعابها في الأسبوعين الماضيين.
  5. علامة تبويب الإرشادات. يتضمن قسم المتطلبات الأساسية، مع قائمة بالحد الأدنى من عمليات التحقق من الصحة قبل أن يتمكن المستخدم من تمكين الموصل، والإرشادات، لتوجيه تمكين المستخدم للموصل. يمكن أن يتضمن هذا القسم النص والأزرار والنماذج والجداول وغيرها من عناصر واجهة المستخدم الشائعة لتبسيط العملية.
  6. علامة تبويب الخطوات التالية. تتضمن معلومات مفيدة لفهم كيفية العثور على البيانات في سجلات الأحداث، مثل نماذج الاستعلامات.

فيما يلي الأقسام connectorUiConfig وبناء الجملة اللازمة لتكوين واجهة المستخدم:

اسم الخاصية كتابة ‏‏الوصف
التوفر {
"status": 1,
"isPreview": منطقيه
}

الحالة: 1 يشير إلى أن الموصل متوفر بشكل عام للعملاء.
isPreview يشير إلى ما إذا كان يجب تضمين لاحقة (معاينة) إلى اسم الموصل.
connectivityCriteria {
"type": SentinelKindsV2,
"value": APIPolling
}
عنصر يحدد كيفية التحقق من تعريف الموصل بشكل صحيح. استخدم القيم المشار إليها هنا.
dataTypes أنواع البيانات[] قائمة بجميع أنواع البيانات للموصل، واستعلام لإحضار وقت الحدث الأخير لكل نوع بيانات.
descriptionMarkdown السلسلة‬ وصف للموصل مع القدرة على إضافة لغة markdown لتحسينه.
graphQueries GraphQueries[] الاستعلامات التي تعرض استيعاب البيانات خلال الأسبوعين الماضيين في جزء "مخططات البيانات".

وفّر إما استعلام واحد لجميع أنواع بيانات موصل البيانات، أو استعلامات مختلفة لكل نوع بيانات.
graphQueriesTableName السلسلة‬ يحدد اسم جدول "Log Analytics" الذي تُسحب بيانات الاستعلامات منه.

يمكن أن يكون اسم الجدول أي سلسلة، ولكن يجب أن ينتهي بـ _CL. على سبيل المثال: TableName_CL
instructionsSteps تعليمات الخطوات[] صفيف من أجزاء عنصر واجهة المستخدم التي تشرح كيفية تثبيت الموصل، المعروضة في علامة التبويب "إرشادات".
بيانات التعريف بيانات التعريف بيانات التعريف المعروضة ضمن وصف الموصل.
اذونات الأذونات[] المعلومات المعروضة ضمن قسم المتطلبات الأساسية في واجهة المستخدم التي تسرد الأذونات المطلوبة لتمكين الموصل أو تعطيله.
publisher السلسلة‬ هذا هو النص المعروض في قسم الموفر .
sampleQueries نماذج الاستعلامات[] عينة استعلامات للعميل لفهم كيفية العثور على البيانات في سجل الأحداث، لتُعرض في علامة التبويب "الخطوات التالية".
title السلسلة‬ العنوان المعروض في صفحة موصل البيانات.

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

dataTypes

قيمة الصفيف النوع ‏‏الوصف
الاسم السلسلة‬ وصف ذي معنى ل، بما فيlastDataReceivedQuery ذلك دعم متغير.

مثال: {{graphQueriesTableName}}
lastDataReceivedQuery السلسلة‬ استعلام KQL الذي يقوم بإرجاع صف واحد، ويشير إلى آخر مرة تم فيها تلقي البيانات، أو عدم وجود بيانات إذا لم تكن هناك بيانات ذات صلة.

مثال: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)

graphQueries

يحدد الاستعلام الذي يعرض استيعاب البيانات خلال الأسبوعين الماضيين في جزء "مخططات البيانات".

وفّر إما استعلام واحد لجميع أنواع بيانات موصل البيانات، أو استعلامات مختلفة لكل نوع بيانات.

قيمة الصفيف النوع ‏‏الوصف
اسم القياس السلسلة‬ اسم معبر للرسم البياني.

مثال: Total data received
legend السلسلة‬ السلسلة التي تظهر في وسيلة الإيضاح إلى يمين المخطط، بما في ذلك مرجع متغير.

مثال: {{graphQueriesTableName}}
baseQuery السلسلة‬ الاستعلام الذي يقوم بتصفية الأحداث ذات الصلة، بما في ذلك مرجع متغير.

على سبيل المثال: TableName_CL | where ProviderName == "myprovider" أو {{graphQueriesTableName}}

instructionSteps

يوفر هذا القسم معلمات تُحدد مجموعة الإرشادات التي تظهر على صفحة موصل البيانات في Microsoft Sentinel.

خاصية الصفيف النوع ‏‏الوصف
title السلسلة‬ اختياري. يحدد عنوانًا للتعليمات.
الوصف السلسلة‬ اختياري. يحدد وصفًا معبرًا للتعليمات.
innerSteps صفيف اختياري. يحدد صفيفًا من خطوات التعليمات الداخلية.
التوجيهات صفيف التعليمات مطلوب. تعريف صفيف من الإرشادات لنوع معلمة معين.
bottomBorder Boolean اختياري. في حال true، يضيف حدًا سفليًا إلى منطقة الإرشادات في صفحة الموصل في Microsoft Sentinel
isComingSoon Boolean اختياري. في حال true، يضيف عنوانَ قريبًا على صفحة الموصل في Microsoft Sentinel

التوجيهات

يعرض مجموعة من الإرشادات، مع خيارات مختلفة كمعلمات والقدرة على تداخل المزيد من التعليماتالتضمينات في المجموعات.

المعلمة‬ خاصية الصفيف ‏‏الوصف
APIKey APIKey إضافة عناصر نائبة إلى ملف تكوين JSON الخاص بالموصل.
CopyableLabel CopyableLabel إظهار حقل نصي مع زر نسخ في النهاية. عند تحديد الزر، يتم نسخ قيمة الحقل.
InfoMessage InfoMessage يحدد رسالة معلومات مُضمنة.
مجموعة الخطوات الإرشادية مجموعة الخطوات الإرشادية يعرض مجموعة من الإرشادات، موسعة اختياريا أو قابلة للطي، في قسم إرشادات منفصل.
InstallAgent InstallAgent يعرض ارتباطا إلى أجزاء أخرى من Azure لإنجاز متطلبات التثبيت المختلفة.

APIKey

قد تحتاج إلى إنشاء قالب ملف تكوين JSON مع معلمات العناصر النائبة لإعادة استخدامه عبر موصلات متعددة، أو حتى لإنشاء موصل ببيانات لا تملكها حاليًا.

لإنشاء معلمات عنصر نائب، حدد صفيفًا إضافيًا باسم userRequestPlaceHoldersInput في قسم "الإرشادات" في ملف تكوين CCP JSON باستخدام بناء الجملة التالي:

"instructions": [
                {
                  "parameters": {
                    "enable": "true",
                    "userRequestPlaceHoldersInput": [
                      {
                        "displayText": "Organization Name",
                        "requestObjectKey": "apiEndpoint",
                        "placeHolderName": "{{placeHolder}}"
                      }
                    ]
                  },
                  "type": "APIKey"
                }
              ]

تتضمن المعلمة userRequestPlaceHoldersInput السمات التالية:

Name كتابة ‏‏الوصف
نص العرض السلسلة‬ يحدد قيمة عرض مربع النص، التي تظهر للمستخدم عند الاتصال.
RequestObjectKey السلسلة‬ تعريف المعرف في قسم الطلب من pollingConfig لاستبدال قيمة العنصر النائب بالقيمة المقدمة من المستخدم.

إذا لم تستخدم هذه السمة، فاستخدم السمة PollingKeyPaths بدلًا من ذلك.
PollingKeyPaths السلسلة‬ تحديد صفيف من عناصر JsonPath التي تُوجِه استدعاء واجهة برمجة التطبيقات إلى أي مكان في القالب لاستبدال قيمة عنصر نائب بقيمة مستخدم.

مثال: "pollingKeyPaths":["$.request.queryParameters.test1"]

إذا لم تستخدم هذه السمة، فاستخدم السمة RequestObjectKey بدلًا من ذلك.
PlaceHolderName السلسلة‬ تحديد اسم معلمة العنصر النائب في ملف قالب JSON. يمكن أن تكون هذه أي قيمة فريدة، مثل {{placeHolder}}.

CopyableLabel

مثال:

لقطة شاشة لزر قيمة النسخ في أحد الحقول.

عينة التعليمات البرمجية:

{
    "parameters": {
        "fillWith": [
            "WorkspaceId",
            "PrimaryKey"
            ],
        "label": "Here are some values you'll need to proceed.",
        "value": "Workspace is {0} and PrimaryKey is {1}"
    },
    "type": "CopyableLabel"
}
قيمة الصفيف النوع ‏‏الوصف
fillWith قائمة تعداد اختياري. صفيف متغيرات البيئة المُستخدم لملء عنصر نائب. يفصل العناصر النائبة المتعددة بفواصل. على سبيل المثال: {0},{1}

القيم المدعومة: workspaceId, workspaceName, primaryKey, MicrosoftAwsAccount, subscriptionId
تسميه السلسلة‬ تعريف نص التسمية أعلى مربع نص.
قيمة السلسلة‬ تحديد القيمة التي ستُعرض في مربع النص، ويدعم العناصر النائبة.
الصفوف صفوف اختياري. يحدد الصفوف في منطقة واجهة المستخدم. يُعيّن إلى 1 بشكل افتراضي.
wideLabel Boolean اختياري. تحديد تسمية واسعة للسلاسل الطويلة. يُعيّن إلى false بشكل افتراضي.

InfoMessage

فيما يلي مثال على رسالة معلومات مضمنة:

لقطة شاشة لرسالة معلومات مُضمنة.

في المقابل، تعرض الصورة التالية رسالة معلومات غير مضمنة:

لقطة شاشة لرسالة معلومات غير مُضمنة.

قيمة الصفيف النوع الوصف
text السلسلة‬ يحدد النص المراد عرضه في الرسالة.
visible Boolean تحديد ما إذا كانت الرسالة معروضة أم لا.
inline Boolean تحديد كيفية عرض رسالة المعلومات.

- true: (مستحسن) يعرض رسالة المعلومات المُضمنة في الإرشادات.
- false: يضيف خلفية زرقاء.

مجموعة الخطوات الإرشادية

فيما يلي مثال على مجموعة تعليمات قابلة للتوسيع:

لقطة شاشة لمجموعة تعليمات إضافية قابلة للتوسيع.

قيمة الصفيف النوع ‏‏الوصف
title السلسلة‬ تحديد عنوان خطوة التعليمات.
canCollapseAllSections Boolean اختياري. يحدد ما إذا كان القسم عبارة عن أكورديون قابل للطي أم لا.
noFxPadding Boolean اختياري. إذا كان true، فإنه يقلل من مساحة الارتفاع المتروكة لتوفير مساحة.
expanded Boolean اختياري. إذا كان true، فإنه يظهر على أنه مُوسع بشكل افتراضي.

للحصول على مثال مفصل، راجع تكوين JSON لموصل Windows DNS.

InstallAgent

تظهر بعض أنواع InstallAgent كزر، وسيظهر البعض الآخر كارتباط. فيما يلي أمثلة على كليهما:

لقطة شاشة لارتباط مُضاف كزر.

لقطة شاشة لارتباط مُضاف كنص مضمّن.

قيم الصفيف النوع ‏‏الوصف
linkType قائمة تعداد تحديد نوع الارتباط، كأحد القيم التالية:

InstallAgentOnWindowsVirtualMachine
InstallAgentOnWindowsNonAzure
InstallAgentOnLinuxVirtualMachine
InstallAgentOnLinuxNonAzure
OpenSyslogSettings
OpenCustomLogsSettings
OpenWaf
OpenAzureFirewall OpenMicrosoftAzureMonitoring
OpenFrontDoors
OpenCdnProfile
AutomaticDeploymentCEF
OpenAzureInformationProtection
OpenAzureActivityLog
OpenIotPricingModel
OpenPolicyAssignment
OpenAllAssignmentsBlade
OpenCreateDataCollectionRule
policyDefinitionGuid السلسلة‬ مطلوب عند استخدام OpenPolicyAssignment linkType. بالنسبة للموصلات المستندة إلى النهج، يحدد GUID لتعريف النهج المُضمن.
assignMode قائمة تعداد اختياري. بالنسبة للموصلات المستندة إلى النهج، يحدد وضع التعيين، كأحد القيم التالية: Initiative, Policy
dataCollectionRuleType قائمة تعداد اختياري. بالنسبة للموصلات المُستندة إلى DCR، يحدد نوع قاعدة تجميع البيانات كأحد ما يلي: SecurityEvent, ForwardEvent

بيانات التعريف

يوفر هذا القسم بيانات التعريف في واجهة مستخدم موصل البيانات ضمن منطقة الوصف .

قيمة المجموعة النوع الوصف
النوع السلسلة‬ تحديد نوع قالب ARM الذي تُنشئه. استخدم دومًا dataConnector.
مصدر السلسلة‬ يصف مصدر البيانات الخاص بك، باستخدام بناء الجملة التالي:
{
"kind":خيط
"name":خيط
}
author السلسلة‬ يصف مؤلف موصل البيانات، باستخدام بناء الجملة التالي:
{
"name":خيط
}
support السلسلة‬ وصف الدعم المقدم لموصل البيانات باستخدام بناء الجملة التالي:
{
"tier":خيط
"name":خيط
"email":خيط
"link":سلسلة URL
}

permissions

قيمة الصفيف النوع ‏‏الوصف
customs السلسلة‬ يصف أي أذونات مخصصة مطلوبة لاتصال البيانات، في بناء الجملة التالي:
{
"name":string,
"description":خيط
}

مثال: يتم عرض قيمة الجمارك في قسم المتطلبات الأساسية ل Microsoft Sentinel مع أيقونة إعلامية زرقاء. في مثال GitHub، يرتبط هذا بخط مفتاح الرمز المميز الشخصي لواجهة برمجة تطبيقات GitHub: تحتاج إلى الوصول إلى الرمز المميز الشخصي GitHub...
licenses قائمة تعداد تحديد التراخيص المطلوبة كأحد القيم التالية: OfficeIRM,OfficeATP, Office365, AadP1P2, Mcas, Aatp, Mdatp, Mtp, IoT

مثال: تظهر قيمة التراخيص في Microsoft Sentinel كما يلي: الترخيص: يجب توفر Azure AD Premium P2
resourceProvider resourceProvider وصف أي متطلبات أساسية لمورد Azure.

مثال: تعرض قيمة resourceProvider في قسم المتطلبات الأساسية ل Microsoft Sentinel على النحو التالي:
مساحة العمل: مطلوب إذن القراءة والكتابة.
المفاتيح: يجب توفر أذونات القراءة للمفاتيح المشتركة لمساحة العمل.
tenant صفيف قيم ENUM
مثال:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
تحديد الأذونات المطلوبة، كقيمة واحدة أو أكثر من القيم التالية: "GlobalAdmin", "SecurityAdmin", "SecurityReader", "InformationProtection"

مثال: يعرض قيمة المستأجر في Microsoft Sentinel على النحو التالي: أذونات المستأجر: يتطلب Global Administrator أو Security Administrator على مستأجر مساحة العمل

resourceProvider

قيمة الصفيف الفرعي النوع ‏‏الوصف
provider قائمة تعداد يصف موفر الموارد، بإحدى القيم التالية:
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName السلسلة‬ عنصر قائمة ضمن المتطلبات الأساسية التي ستعرض علامة اختيار حمراء "x" أو خضراء عند التحقق من صحة الأذونات المطلوبة في صفحة الموصل. مثل "Workspace"
permissionsDisplayText السلسلة‬ عرض نص لأذونات القراءة أو الكتابة أو القراءة والكتابة التي يجب أن تتوافق مع القيم المكونة في الأذونات المطلوبة
requiredPermissions {
"action":منطقيه,
"delete":منطقيه,
"read":منطقيه,
"write":منطقيه
}
توضح هذه المقالة الحد الأدنى من الأذونات المطلوبة للموصل.
النطاق قائمة تعداد وصف نطاق موصل البيانات، كأحد القيم التالية: "Subscription", "ResourceGroup", "Workspace"

sampleQueries

قيمة الصفيف النوع ‏‏الوصف
الوصف السلسلة‬ وصف معبر لعينة الاستعلام.

مثال: Top 10 vulnerabilities detected
الاستعلام السلسلة‬ عينة استعلام تُستخدم لإحضار بيانات نوع البيانات.

مثال: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10

لتعريف ارتباط مضمن باستخدام markdown، استخدم المثال التالي. هنا يتم توفير ارتباط في وصف التعليمات:

{
   "title": "",
   "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)"
}

لتعريف ارتباط كقالب ARM، استخدم المثال التالي كإرشاد:

{
   "title": "Azure Resource Manager (ARM) template",
   "description": "1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)]({URL to custom ARM template})"
}

التحقق من صحة تجربة مستخدم صفحة موصل البيانات

اتبع هذه الخطوات لعرض تجربة مستخدم الموصل والتحقق من صحتها.

  1. يمكن الوصول إلى الأداة المساعدة للاختبار بواسطة عنوان URL هذا - https://aka.ms/sentineldataconnectorvalidateurl
  2. انتقل إلى Microsoft Sentinel -> موصلات البيانات
  3. انقر فوق الزر "استيراد" وحدد ملف json الذي يحتوي فقط على connectorUiConfig قسم من موصل البيانات.

لمزيد من المعلومات حول أداة التحقق من الصحة هذه، راجع إرشادات إنشاء الموصل في دليل إنشاء GitHub.

إشعار

نظرا لأن معلمة تعليمات APIKey خاصة بالموصل بدون تعليمات برمجية، قم بإزالة هذا القسم مؤقتا لاستخدام أداة التحقق من الصحة، أو ستفشل.

تكوين إعدادات استقصاء الموصل

يصف هذا القسم تكوين كيفية استقصاء البيانات من مصدر البيانات لموصل بيانات بدون تعليمات برمجية.

تُظهر التعليمات البرمجية التالية بناء جملة قسم pollingConfig من ملف تكوين CCP.

"pollingConfig": {
    "auth": {
    },
    "request": {
    },
    "response": {
    },
    "paging": {
    }
 }

يتضمن قسم pollingConfig الخصائص التالية:

Name كتابة ‏‏الوصف
المصادقه السلسلة‬ وصف خصائص المصادقة لاستقصاء البيانات. لمزيد من المعلومات، راجع تكوين المصادقة.
auth.authType السلسلة‬ إلزامي. يعرف نوع المصادقة، المتداخلة auth داخل الكائن، كأحد القيم التالية: Basic، ، APIKeyOAuth2
طلب JSON المتداخل إلزامي. وصف حمولة الطلب لاستقصاء البيانات، مثل نقطة نهاية واجهة برمجة التطبيقات. لمزيد من المعلومات، راجع تكوين الطلب.
response JSON المتداخل إلزامي. وصف عنصر الاستجابة والرسالة المتداخلة التي جرى إرجاعها من واجهة برمجة التطبيقات عند استقصاء البيانات. لمزيد من المعلومات، راجع تكوين الاستجابة.
paging JSON المتداخل اختياري. وصف حمولة فصل الصفحات عند استقصاء البيانات. لمزيد من المعلومات، راجع تكوين الترحيل.

لمزيد من المعلومات، راجع عينة التعليمات البرمجية لـ pollingConfig.

تكوين المصادقة

يتضمن قسم auth لتكوين pollingConfig المعلمات التالية، اعتمادًا على النوع المُحدد في عنصر authType:

معلمات authType الأساسية

Name كتابة ‏‏الوصف
اسم المستخدم السلسلة‬ إلزامي. تحديد اسم المستخدم.
كلمة المرور السلسلة‬ إلزامي. تحديد كلمة مرور المستخدم.

معلمات authType لمفتاح API

Name كتابة ‏‏الوصف
APIKeyName السلسلة‬ اختياري. يعرف اسم مفتاح API الخاص بك، كأحد القيم التالية:

- XAuthToken
- Authorization
IsAPIKeyInPostPayload Boolean تحديد مكان تعريف مفتاح API.

صواب: يتم تعريف مفتاح API في حمولة طلب POST
خطأ: يُعرّف مفتاح API في العنوان
APIKeyIdentifier السلسلة‬ اختياري. يحدد اسم المعرّف لمفتاح API.

على سبيل المثال، حين يُعرّف التخويل على أنه "Authorization": "token <secret>"، تُعرّف هذه المعلمة على أنها: {APIKeyIdentifier: “token”})

معلمات authType لـ OAuth2

يدعم النظام الأساسي للموصل بدون تعليمات برمجية منح رمز تخويل OAuth 2.0.

يستخدم العميل العام والسري نوع منح "رمز التخويل" لتبادل رمز التخويل للرمز المميز للوصول.

بعد عودة المستخدم إلى العميل عبر عنوان URL لإعادة التوجيه، سيحصل التطبيق على رمز التخويل من عنوان URL ويستخدمه لطلب الرمز المميز للوصول.

Name كتابة ‏‏الوصف
FlowName السلسلة‬ إلزامي. يحدد تدفق OAuth2.

القيمة المدعومة: AuthCode - تتطلب تدفق تخويل
AccessToken السلسلة‬ اختياري. يحدد رمز وصول OAuth2 المميز، ذي الصلة عندما لا تنتهي صلاحية الرمز المميز للوصول.
AccessTokenPrepend السلسلة‬ اختياري. يحدد إلحاق رمز وصول OAuth2 المميز. القيمة الافتراضية هي Bearer.
RefreshToken السلسلة‬ إلزامي لأنواع مصادقة OAuth2. يحدد رمز تحديث OAuth2 المميز.
TokenEndpoint السلسلة‬ إلزامي لأنواع مصادقة OAuth2. يحدد نقطة نهاية خدمة الرمز المميز OAuth2.
AuthorizationEndpoint السلسلة‬ اختياري. يحدد نقطة نهاية خدمة تخويل OAuth2. يُستخدم فقط أثناء الإلحاق أو عند تجديد رمز تحديث مميز.
RedirectionEndpoint السلسلة‬ اختياري. يحدد نقطة نهاية إعادة التوجيه أثناء الإلحاق.
AccessTokenExpirationDateTimeInUtc السلسلة‬ اختياري. يحدد تاريخ انتهاء صلاحية الرمز المميز للوصول للتحديث بتنسيق UTC. يتعلق بوقت عدم انتهاء صلاحية الرمز المميز للوصول، وبالتالي له تاريخ ووقت طويل بالتوقيت العالمي المتفق عليه، أو عندما يكون للرمز المميز للوصول تاريخ انتهاء صلاحية طويل.
RefreshTokenExpirationDateTimeInUtc السلسلة‬ إلزامي لأنواع مصادقة OAuth2. يحدد تاريخ انتهاء صلاحية الرمز المميز للتحديث بتنسيق UTC.
TokenEndpointHeaders القاموس<سلسلة، عنصر> اختياري. يحدد العناوين عند استدعاء نقطة نهاية خدمة الرمز المميز OAuth2.

تعريف سلسلة بالتسلسل dictionary<string, string> التنسيق: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
AuthorizationEndpointHeaders القاموس<سلسلة، عنصر> اختياري. يحدد العناوين عند استدعاء نقطة نهاية خدمة تخويل OAuth2. يُستخدم فقط أثناء الإلحاق أو عند تجديد رمز تحديث مميز.

تعريف سلسلة بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
AuthorizationEndpointQueryParameters القاموس<سلسلة، عنصر> اختياري. تحديد معلمات الاستعلام عند استدعاء نقطة نهاية خدمة تخويل OAuth2. يُستخدم فقط أثناء الإلحاق أو عند تجديد رمز تحديث مميز.

تعريف سلسلة بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
TokenEndpointQueryParameters القاموس<سلسلة، عنصر> اختياري. تحديد معلمات الاستعلام عند استدعاء نقطة نهاية خدمة الرمز المميز OAuth2.

تعريف سلسلة بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
IsTokenEndpointPostPayloadJson Boolean اختياري، الافتراضي خطأ. يحدد ما إذا كانت معلمات الاستعلام بتنسيق JSON ويعينها في حمولة POST للطلب.
IsClientSecretInHeader Boolean اختياري، الافتراضي خطأ. يحدد ما إذا عُرفت القيم client_id وclient_secret في العنوان، كما هو الحال في مخطط المصادقة الأساسية، بدلًا من حمولة POST.
RefreshTokenLifetimeinSecAttributeName السلسلة‬ اختياري. يعرّف اسم السمة من استجابة نقطة نهاية الرمز المميز، مع تحديد مدة بقاء الرمز المميز للتحديث بالثواني.
IsJwtBearerFlow Boolean اختياري، الافتراضي خطأ. يحدد ما إذا كنت تستخدم JWT.
JwtHeaderInJson القاموس<سلسلة، عنصر> اختياري. تعريف عناوين JWT بتنسيق JSON.

تعريف سلسلة بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...}
JwtClaimsInJson القاموس<سلسلة، عنصر> اختياري. يحدد مطالبات JWT بتنسيق JSON.

تعريف سلسلة بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...}
JwtPem السلسلة‬ اختياري. يحدد مفتاح سري بتنسيق PEM Pkcs1: '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n'

تأكد من كتابة التعليمة البرمجية '\r\n' في مكانها.
RequestTimeoutInSeconds رقم صحيح اختياري. يحدد المهلة بالثواني عند استدعاء نقطة نهاية خدمة الرمز المميز. الافتراضي هو 180 ثانية

في ما يلي مثال على كيف يبدو تكوين OAuth2:

"pollingConfig": {
    "auth": {
        "authType": "OAuth2",
        "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent",
        "redirectionEndpoint": "https://portal.azure.com/TokenAuthorize",
        "tokenEndpoint": "https://oauth2.googleapis.com/token",
        "authorizationEndpointQueryParameters": {},
        "tokenEndpointHeaders": {
            "Accept": "application/json"
        },
        "TokenEndpointQueryParameters": {},
        "isClientSecretInHeader": false,
        "scope": "https://www.googleapis.com/auth/admin.reports.audit.readonly",
        "grantType": "authorization_code",
        "contentType": "application/x-www-form-urlencoded",
        "FlowName": "AuthCode"
    },

معلمات authType للجلسة

Name كتابة ‏‏الوصف
QueryParameters القاموس<سلسلة، عنصر> اختياري. قائمة بمعلمات الاستعلام، بالتنسيق المتسلسلة dictionary<string, string> :

{'<attr_name>': '<val>', '<attr_name>': '<val>'... }
IsPostPayloadJson Boolean اختياري. يحدد ما إذا كانت معلمات الاستعلام بتنسيق JSON.
رؤوس القاموس<سلسلة، عنصر> اختياري. يحدد العنوان المُستخدم عند استدعاء نقطة النهاية للحصول على معرّف الجلسة، وعند استدعاء واجهة برمجة تطبيقات نقطة النهاية.

تعريف السلسلة بالتسلسل dictionary<string, string> التنسيق: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
SessionTimeoutInMinutes السلسلة‬ اختياري. يحدد مهلة جلسة العمل، بالدقائق.
SessionIdName السلسلة‬ اختياري. يحدد اسم معرّف لجلسة العمل.
SessionLoginRequestUri السلسلة‬ اختياري. يحدد عنوان URI لطلب تسجيل الدخول إلى جلسة العمل.

تكوين الطلب

يتضمن قسم request لتكوين pollingConfig المعلمات التالية:

Name كتابة ‏‏الوصف
apiEndpoint السلسلة‬ إلزامي. يحدد نقطة النهاية لسحب البيانات منها.
httpMethod السلسلة‬ إلزامي. يحدد أسلوب واجهة برمجة التطبيقات: GET أو POST
queryTimeFormat سلسلة أو UnixTimestamp أو UnixTimestampInMills إلزامي. يحدد التنسيق المُستخدم لتعريف وقت الاستعلام.

يمكن أن تكون هذه القيمة سلسلة، أو بتنسيق UnixTimestamp أو UnixTimestampInMills للإشارة إلى وقت بدء الاستعلام ووقت الانتهاء في UnixTimestamp.
startTimeAttributeName السلسلة‬ اختياري. يعرّف اسم السمة التي تحدد وقت بدء الاستعلام.
endTimeAttributeName السلسلة‬ اختياري. يعرّف اسم السمة التي تحدد وقت انتهاء الاستعلام.
queryTimeIntervalAttributeName السلسلة‬ اختياري. يعرّف اسم السمة التي تحدد الفاصل الزمني للاستعلام.
queryTimeIntervalDelimiter السلسلة‬ اختياري. يُعرّف محدِّد الفاصل الزمني للاستعلام.
queryWindowInMin رقم صحيح اختياري. يحدد نافذة الاستعلام المتوفرة، بالدقائق.

«Minimum value»: 5
queryParameters القاموس<سلسلة، عنصر> اختياري. يحدد المعلمات التي جرى تمريرها في الاستعلام في المسار eventsJsonPaths.

تعريف السلسلة بالتسلسل dictionary<string, string> التنسيق: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }.
queryParametersTemplate السلسلة‬ اختياري. يحدد قالب معلمات الاستعلام لاستخدامه عند تمرير معلمات الاستعلام في سيناريوهات متقدمة.

على سبيل المثال: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}"

{_QueryWindowStartTime} و{_QueryWindowEndTime} مدعومان فقط في معلمات الطلب queryParameters وqueryParametersTemplate.

{_APIKeyName} و{_APIKey} مدعومان فقط في معلمة الطلب queryParametersTemplate.
isPostPayloadJson Boolean اختياري. يحدد ما إذا كانت حمولة POST بتنسيق JSON.
rateLimitQPS مزدوج اختياري. يحدد عدد الاستدعاءات أو الاستعلامات المسموح بها في ثانية واحدة.
timeoutInSeconds رقم صحيح اختياري. يحدد مهلة الطلب، بالثواني.
retryCount رقم صحيح اختياري. يحدد عدد عمليات إعادة محاولة الطلب للمحاولة إذا لزم الأمر.
العناوين القاموس<سلسلة، عنصر> اختياري. يحدد قيمة عنوان الطلب، بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... }

تكوين الاستجابة

يتضمن قسم response لتكوين pollingConfig المعلمات التالية:

Name كتابة ‏‏الوصف
eventsJsonPaths قائمة سلسلة إلزامي. يحدد المسار إلى الرسالة في استجابة JSON.

يحدد تعبير مسار JSON مسارًا إلى عنصر أو مجموعة من العناصر في بنية JSON
successStatusJsonPath السلسلة‬ اختياري. يحدد المسار إلى رسالة النجاح في الاستجابة JSON.
successStatusValue السلسلة‬ اختياري. يحدد المسار إلى قيمة رسالة النجاح في الاستجابة JSON
isGzipCompressed Boolean اختياري. يحدد ما إذا كانت الاستجابة مضغوطة في ملف gzip.

تُظهر التعليمات البرمجية التالية مثالًا لقيمة eventsJsonPaths لرسالة رفيعة المستوى:

"eventsJsonPaths": [
              "$"
            ]

تكوين الترحيل

يتضمن قسم paging لتكوين pollingConfig المعلمات التالية:

Name كتابة ‏‏الوصف
pagingType السلسلة‬ إلزامي. يحدد نوع الترحيل لاستخدامه في النتائج، كأحد القيم التالية: None, LinkHeader, NextPageToken, NextPageUrl, Offset
linkHeaderTokenJsonPath السلسلة‬ اختياري. يحدد مسار JSON لربط العنوان في استجابة JSON، إذا لم يُعرَّف LinkHeader في عنوان الاستجابة.
nextPageTokenJsonPath السلسلة‬ اختياري. يحدد المسار إلى رمز JSON المميز للصفحة التالية.
hasNextFlagJsonPath السلسلة‬ اختياري. يحدد المسار إلى سمة العلامة HasNextPage.
nextPageTokenResponseHeader السلسلة‬ اختياري. يعرّف اسم عنوان الرمز المميز للصفحة التالية في الاستجابة.
nextPageParaName السلسلة‬ اختياري. يحدد اسم "الصفحة التالية" في الطلب.
nextPageRequestHeader السلسلة‬ اختياري. يحدد عنوان "الصفحة التالية" في الطلب.
nextPageUrl السلسلة‬ اختياري. يحدد عنوان URL لـ "الصفحة التالية"، إذا كان مختلفًا عن عنوان URL للطلب الأولي.
nextPageUrlQueryParameters السلسلة‬ اختياري. يحدد معلمات استعلام URL للصفحة التالية إذا كانت مختلفة عن عنوان URL للطلب الأولي.

تعريف السلسلة بالتسلسل dictionary<string, object> التنسيق: {'<attr_name>': <val>, '<attr_name>': <val>... }
offsetParaName السلسلة‬ اختياري. يعرّف اسم معلمة الإزاحة.
pageSizeParaName السلسلة‬ اختياري. يعرّف اسم معلمة حجم الصفحة.
PageSize رقم صحيح يحدد حجم الترحيل.

عينة التعليمات البرمجية لـ pollingConfig

تُظهر التعليمات البرمجية التالية مثالًا لقسم pollingConfig من ملف تكوين CCP:

"pollingConfig": {
    "auth": {
        "authType": "APIKey",
        "APIKeyIdentifier": "token",
        "APIKeyName": "Authorization"
     },
     "request": {
        "apiEndpoint": "https://api.github.com/../{{placeHolder1}}/audit-log",
        "rateLimitQPS": 50,
        "queryWindowInMin": 15,
        "httpMethod": "Get",
        "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
        "retryCount": 2,
        "timeoutInSeconds": 60,
        "headers": {
           "Accept": "application/json",
           "User-Agent": "Scuba"
        },
        "queryParameters": {
           "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}"
        }
     },
     "paging": {
        "pagingType": "LinkHeader",
        "pageSizeParaName": "per_page"
     },
     "response": {
        "eventsJsonPaths": [
          "$"
        ]
     }
}

توزيع الموصل في Microsoft Sentinel وبدء استيعاب البيانات

بعد إنشاء ملف تكوين JSON، بما في ذلك كل من واجهة المستخدم وتكوين الاستقصاء، وزّع الموصل في مساحة عمل Microsoft Sentinel.

  1. استخدم أحد الخيارات التالية لتوزيع موصل البيانات.

    تلميح

    تتمثل ميزة التوزيع عبر قالب Azure Resource Manager (ARM) في أن العديد من القيم مُضمنة في القالب، ولا تحتاج إلى تعريفها يدويًا في استدعاء واجهة برمجة التطبيقات.

    قم بتضمين مجموعات تكوين JSON في قالب ARM لنشر الموصل الخاص بك. للتأكد من نشر موصل البيانات إلى مساحة العمل الصحيحة، تأكد من تحديد مساحة العمل في قالب ARM، أو تحديد مساحة العمل عند نشر قالب ARM.

    1. إعداد ملف JSON لقالب ARM للموصل. على سبيل المثال، راجع ملفات JSON لقالب ARM التالية:

    2. في مدخل Microsoft Azure، ابحث عن "توزيع قالب مخصص".

    3. في صفحة "توزيع مخصص"، حدد "إنشاء القالب في المحرر>تحميل الملف". استعرض للوصول إلى قالب ARM المحلي وحدده، ثم احفظ التغييرات.

    4. حدد الاشتراك ومجموعة الموارد، ثم أدخل مساحة عمل Log Analytics حيث تريد توزيع الموصل المخصص.

    5. حدد "إنشاء + مراجعة" لتوزيع الموصل المخصص إلى Microsoft Sentinel.

    6. في Microsoft Sentinel، انتقل إلى صفحة "موصلات البيانات"، وابحث عن الموصل الجديد. كوّنه لبدء استيعاب البيانات.

    لمزيد من المعلومات، راجع توزيع قالب محلي في وثائق Azure Resource Manager.

  2. كوّن موصل البيانات لتوصيل مصدر البيانات وبدء استيعاب البيانات في Microsoft Sentinel. يمكنك الاتصال بمصدر البيانات إما عبر المدخل، كما هو الحال مع موصلات البيانات الجاهزة، أو عبر واجهة برمجة التطبيقات.

    عند استخدام مدخل Microsoft Azure للاتصال، تُرسل بيانات المستخدم تلقائيًا. عند الاتصال عبر واجهة برمجة التطبيقات، ستحتاج إلى إرسال معلمات المصادقة ذات الصلة في استدعاء واجهة برمجة التطبيقات.

    في صفحة موصل بيانات Microsoft Sentinel، اتبع الإرشادات التي قدمتها للاتصال بموصل البيانات.

    يتم التحكم في صفحة موصل البيانات في Microsoft Sentinel بواسطة تكوين InstructionSteps في connectorUiConfig عنصر ملف تكوين CCP JSON. إذا واجهت مشكلة في اتصال واجهة المستخدم، فتأكد من أن لديك التكوين الصحيح لنوع المصادقة.

  3. في Microsoft Sentinel، انتقل إلى صفحة "السجلات" وتحقق من رؤية السجلات من مصدر البيانات تتدفق إلى مساحة العمل.

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

قطع اتصال الموصل

إذا لم تعد بحاجة إلى بيانات الموصل، فاقطع اتصال الموصل لإيقاف تدفق البيانات.

استخدم أحد الأساليب التالية:

  • مدخل Microsoft Azure: في صفحة موصل بيانات Microsoft Sentinel، حدد "قطع الاتصال".

  • واجهة برمجة التطبيقات: استخدم واجهة برمجة تطبيقات قطع الاتصال لإرسال استدعاء PUT مع نص فارغ إلى عنوان URL التالي:

    https://management.azure.com /subscriptions/{{SUB}}/resourceGroups/{{RG}}/providers/Microsoft.OperationalInsights/workspaces/{{WS-NAME}}/providers/Microsoft.SecurityInsights/dataConnectors/{{Connector_Id}}/disconnect?api-version=2021-03-01-preview
    

الخطوات التالية

إذا لم تكن قد قمت بذلك بعد، فشارك موصل البيانات الجديد بدون تعليمات برمجية مع مجتمع Microsoft Sentinel! أنشئ حلًا لموصل البيانات وشاركه في Microsoft Sentinel Marketplace.

لمزيد من المعلومات، راجع