مصادقة Microsoft Entra ل Application Insights

يدعم Application Insights الآن مصادقة Microsoft Entra. باستخدام معرف Microsoft Entra، يمكنك التأكد من استيعاب بيانات تتبع الاستخدام المصادق عليها فقط في موارد Application Insights.

يمكن أن يكون استخدام أنظمة المصادقة المختلفة ويشكل خطراً نظراً إلى أنه من الصعب إدارة بيانات الاعتماد على نطاق واسع. يمكنك الآن اختيار إلغاء الاشتراك في المصادقة المحلية لضمان مصادقة بيانات تتبع الاستخدام فقط حصريا باستخدام الهويات المدارة ومعرف Microsoft Entra في المورد الخاص بك. هذه الميزة هي خطوة لتعزيز أمان وموثوقية بيانات تتبع الاستخدام المستخدمة لاتخاذ قرارات تشغيلية حرجة (التنبيه والتحجيم التلقائي) والأعمال.

إشعار

يغطي هذا المستند استيعاب البيانات في Application Insights باستخدام المصادقة المستندة إلى معرف Microsoft Entra. للحصول على معلومات حول الاستعلام عن البيانات داخل Application Insights، راجع Query Application Insights باستخدام مصادقة Microsoft Entra.

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

الخطوات الأولية التالية مطلوبة لتمكين الاستيعاب المصادق عليه من Microsoft Entra. تحتاج إلى:

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

حزم تطوير البرامج (SDKs) والميزات التالية غير مدعومة للاستخدام مع الاستيعاب المصادق عليه من Microsoft Entra:

تكوين وتمكين المصادقة المستندة إلى معرف Microsoft Entra

  1. إذا لم يكن لديك هوية بالفعل، فبادر بإنشاء واحدة باستخدام هوية مدارة أو كيان خدمة.

    • نوصي باستخدام هوية مدارة:

      إعداد هوية مدارة لخدمة Azure (الأجهزة الظاهرية أو خدمة التطبيقات).

    • لا نوصي باستخدام كيان الخدمة:

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

  2. تعيين دور لخدمة Azure.

    اتبع الخطوات الواردة في تعيين أدوار Azure لإضافة دور Monitoring Metrics Publisher من مورد Application Insights الهدف إلى مورد Azure الذي يتم إرسال بيانات تتبع الاستخدام منه.

    إشعار

    على الرغم من أن دور Monitoring Metrics Publisher يقول "metrics"، فإنه سينشر جميع بيانات تتبع الاستخدام إلى مورد Application Insights.

  3. اتبع إرشادات التكوين وفقا للغة التالية.

إشعار

يتم تضمين دعم معرف Microsoft Entra في Application Insights .NET SDK بدءا من الإصدار 2.18-Beta3.

يدعم Application Insights .NET SDK فئات بيانات الاعتماد التي توفرها Azure Identity.

  • نوصي DefaultAzureCredential بالتطوير المحلي.
  • نوصي بالهويات ManagedIdentityCredential المدارة المعينة من قبل النظام والمخصصة من قبل المستخدم.
    • بالنسبة إلى النظام المعين، استخدم المنشئ الافتراضي بدون معلمات.
    • بالنسبة إلى المعين من قبل المستخدم، قم بتوفير معرف العميل إلى الدالة الإنشائية.

يوضح المثال التالي كيفية الإنشاء والتكوين TelemetryConfiguration يدويا باستخدام .NET:

TelemetryConfiguration.Active.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/";
var credential = new DefaultAzureCredential();
TelemetryConfiguration.Active.SetAzureTokenCredential(credential);

يوضح المثال التالي كيفية التكوين TelemetryConfiguration باستخدام .NET Core:

services.Configure<TelemetryConfiguration>(config =>
{
       var credential = new DefaultAzureCredential();
       config.SetAzureTokenCredential(credential);
});
services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
    ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/"
});

تعطيل المصادقة المحلية

بعد تمكين مصادقة Microsoft Entra، يمكنك اختيار تعطيل المصادقة المحلية. يتيح لك هذا التكوين استيعاب بيانات تتبع الاستخدام التي تمت مصادقتها حصريا بواسطة معرف Microsoft Entra ويؤثر على الوصول إلى البيانات (على سبيل المثال، من خلال مفاتيح واجهة برمجة التطبيقات).

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

مدخل Azure

  1. من مورد Application Insights، حدد Properties ضمن عنوان Configure في القائمة على اليسار. حدد Enabled (انقر للتغيير) إذا تم تمكين المصادقة المحلية.

    لقطة شاشة تعرض Properties ضمن قسم Configure وزر Enabled (select to change) local authentication.

  2. حدد معطل وقم بتطبيق التغييرات.

    لقطة شاشة تعرض المصادقة المحلية مع الزر ممكن/معطل.

  3. بعد تعطيل المصادقة المحلية على المورد الخاص بك، سترى المعلومات المقابلة في جزء نظرة عامة .

    لقطة شاشة تعرض علامة التبويب Overview مع الزر Disabled (select to change) local authentication.

نهج Azure

يرفض نهج Azure للمستخدمين DisableLocalAuth القدرة على إنشاء مورد Application Insights جديد دون تعيين هذه الخاصية إلى true. اسم النهج هو Application Insights components should block non-AAD auth ingestion.

لتطبيق تعريف النهج هذا على اشتراكك، أنشئ تعيين نهج جديد وتعيين النهج.

يوضح المثال التالي تعريف قالب النهج:

{
    "properties": {
        "displayName": "Application Insights components should block non-AAD auth ingestion",
        "policyType": "BuiltIn",
        "mode": "Indexed",
        "description": "Improve Application Insights security by disabling log ingestion that are not AAD-based.",
        "metadata": {
            "version": "1.0.0",
            "category": "Monitoring"
        },
        "parameters": {
            "effect": {
                "type": "String",
                "metadata": {
                    "displayName": "Effect",
                    "description": "The effect determines what happens when the policy rule is evaluated to match"
                },
                "allowedValues": [
                    "audit",
                    "deny",
                    "disabled"
                ],
                "defaultValue": "audit"
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "type",
                        "equals": "Microsoft.Insights/components"
                    },
                    {
                        "field": "Microsoft.Insights/components/DisableLocalAuth",
                        "notEquals": "true"                        
                    }
                ]
            },
            "then": {
                "effect": "[parameters('effect')]"
            }
        }
    }
}

التمكين البرمجي

يتم استخدام الخاصية DisableLocalAuth لتعطيل أي مصادقة محلية على مورد Application Insights. عند تعيين هذه الخاصية إلى true، فإنها تفرض أن مصادقة Microsoft Entra يجب استخدامها لجميع الوصول.

يوضح المثال التالي قالب Azure Resource Manager الذي يمكنك استخدامه لإنشاء مورد Application Insights المستند إلى مساحة العمل مع LocalAuth تعطيله.

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        },
        "disableLocalAuth": {
            "type": "bool"
        }
     
    },
    "resources": [
        {
        "name": "[parameters('name')]",
        "type": "microsoft.insights/components",
        "location": "[parameters('regionId')]",
        "tags": "[parameters('tagsArray')]",
        "apiVersion": "2020-02-02-preview",
        "dependsOn": [],
        "properties": {
            "Application_Type": "[parameters('type')]",
            "Flow_Type": "Redfield",
            "Request_Source": "[parameters('requestSource')]",
            "WorkspaceResourceId": "[parameters('workspaceResourceId')]",
            "DisableLocalAuth": "[parameters('disableLocalAuth')]"
            }
    }
 ]
}

جمهور الرمز المميز

عند تطوير عميل مخصص للحصول على رمز وصول من معرف Microsoft Entra لإرسال بيانات تتبع الاستخدام إلى Application Insights، راجع الجدول التالي لتحديد سلسلة الجمهور المناسبة لبيئة المضيف الخاصة بك.

إصدار سحابة Azure قيمة جمهور الرمز المميز
السحابة العامة لـ Azure https://monitor.azure.com
Microsoft Azure المشغل بواسطة سحابة 21Vianet https://monitor.azure.cn
سحابة حكومة الولايات المتحدة في Azure https://monitor.azure.us

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

InstrumentationKey={profile. InstrumentationKey}؛ IngestionEndpoint={ingestionEndpoint}؛ LiveEndpoint={liveDiagnosticsEndpoint}؛ AAD (دليل Azure النشط)Audience={aadAudience}

يمكن أن تختلف معلمة الجماعة المستهدفة، AAD (دليل Azure النشط)Audience، اعتمادا على بيئتك المحددة.

استكشاف الأخطاء وإصلاحها

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

أخطاء الاستيعاب من HTTP

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

مصادقة HTTP/1.1 400 غير مدعمة

يظهر هذا الخطأ تعيين المورد ل Microsoft Entra فقط. تحتاج إلى تكوين SDK بشكل صحيح لأنه يرسل إلى واجهة برمجة تطبيقات خاطئة.

إشعار

لا يدعم "v2/track" معرف Microsoft Entra. عندما يتم تكوين SDK بشكل صحيح، سيتم إرسال القياس عن بُعد إلى "v2.1/track".

بعد ذلك، يجب مراجعة تكوين SDK.

HTTP/1.1 401 التخويل المطلوب

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

بعد ذلك، يجب تحديد الاستثناءات في سجلات SDK أو أخطاء الشبكة من هوية Azure.

HTTP/1.1 403 غير مصرح به

يعني هذا الخطأ أن SDK يستخدم بيانات الاعتماد دون إذن لمورد Application Insights أو الاشتراك.

أولا، تحقق من التحكم في الوصول لمورد Application Insights. يجب تكوين SDK باستخدام بيانات الاعتماد التي لها دور Monitoring Metrics Publisher.

استكشاف الأخطاء وإصلاحها الخاصة باللغة

مصدر الحدث

يرسل Application Insights .NET SDK سجلات الخطأ باستخدام مصدر الحدث. لمعرفة المزيد حول تجميع سجلات مصدر الحدث، راجع استكشاف الأخطاء وإصلاحها دون بيانات - جمع السجلات باستخدام PerfView.

إذا فشل SDK في الحصول على رمز مميز، يتم تسجيل رسالة الاستثناء ك Failed to get AAD Token. Error message:.

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