جمع سجلات Azure Active Directory B2C باستخدام Application Insights

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

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

تقدم هذه المقالة خطوات لجمع سجلات من Active Directory B2C (Azure AD B2C) بحيث يمكنك تشخيص مشاكل النهج المخصصة. توفر Application Insights طريقة لتشخيص الاستثناءات وتصور مشكلات أداء التطبيق. تتضمن Azure AD B2C ميزة لإرسال البيانات إلى Application Insights.

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

تحذير

تجنب تعيين DeploymentMode إلى Development في بيئات التشغيل. تجمع السجلات جميع المطالبات المرسلة من موفري الهوية وإليهم. أنت تتحمل المسؤولية كمطور عن أي بيانات شخصية يتم جمعها في سجلات Application Insights لديك. يتم جمع السجلات التفصيلية فقط عند وضع النهج في وضع المطور.

قم باعداد Application Insights

إذا لم يكن لديك واحد بالفعل، قم بإنشاء مثيل لـ Application Insights في اشتراكك.

تلميح

يمكن استخدام مثيل واحد لـ Application Insights لمستأجري Azure AD B2C المتعددين. في الاستعلام الخاص بك، يمكنك التصفية حسب المستأجر أو اسم النهج. لمزيدٍ من المعلومات، راجع التسجيلات في عينات Application Insights.

لاستخدام مثيل موجود من Application Insights في اشتراكك، اتبع الخطوات التالية:

  1. سجل دخولك إلى مدخل Azure.
  2. تأكد من أنك تستخدم دليل Microsoft Entra الذي يحتوي على اشتراك Azure الخاص بك، وليس دليل Azure AD B2C. حدّد أيقونة الدلائل + الاشتراكات في شريط أدوات المدخل.
  3. في إعدادات المدخل | صفحة الدلائل + الاشتراكات ، وابحث عن دليل Microsoft Entra في قائمة اسم الدليل، ثم حدد تبديل.
  4. افتح مورد Application Insights الذي قمت بإنشائه سابقًا.
  5. في صفحة نظرة عامة وسجل مفتاح الأدوات

لإنشاء مثيل Application Insights في الاشتراك الخاص بك اتبع الخطوات التالية:

  1. سجل دخولك إلى مدخل Azure.
  2. تأكد من أنك تستخدم دليل Microsoft Entra الذي يحتوي على اشتراك Azure الخاص بك، وليس دليل Azure AD B2C. حدّد أيقونة الدلائل + الاشتراكات في شريط أدوات المدخل.
  3. في إعدادات المدخل | صفحة الدلائل + الاشتراكات ، وابحث عن دليل Microsoft Entra في قائمة اسم الدليل، ثم حدد تبديل.
  4. حدد إنشاء مورد في قائمة التنقل اليمنى.
  5. ابحث عن Application Insightsوحددها، ثم حدد إنشاء.
  6. اختر مراجعة + إنشاء، ثم قم بتحديد إنشاء.
  7. بمجرد اكتمال النشر، حدد Go to resource.
  8. ضمن تكوين في قائمة Application Insights، حدد الخصائص.
  9. قم بتسجيل مفتاح الأدوات للاستخدام في خطوة لاحقة.

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

  1. افتح ملف جهة الاعتماد (RP)، على سبيل المثال SignUpOrSignin.xml.

  2. أضف السمات التالية إلى <TrustFrameworkPolicy> العنصر:

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. إذا لم تكن موجودة بالفعل، فأضف عقدة <UserJourneyBehaviors> التابعة إلى العقدة <RelyingParty>. يجب أن تكون موجودة بعد <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />. راجع مرجع مخطط RelyingParty للحصول على ترتيب كامل للعناصر التابعة RelyingParty .

  4. أضف العقدة التالية كتابعة للعنصر <UserJourneyBehaviors>. تأكد من استبدال {Your Application Insights Key} بـ Application Insights مفتاح الأدوات الذي قمت بتسجيله سابقًا.

    <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • يخبر DeveloperMode="true" ApplicationInsights لتسريع بيانات تتبع الاستخدام من خلال مسار المعالجة. جيد للتطوير ولكن مقيد بكميات كبيرة. في الإنتاج، قم بتعيين DeveloperMode إلى false.
    • ClientEnabled="true" يرسل البرنامج النصي من جانب العميل الخاص بـ Application Insights لتعقب عرض الصفحة والأخطاء من جانب العميل. يمكنك عرض هذا في جدول browserTimings في مدخل Application Insights. عن طريق تعيين ClientEnabled= "true"، يمكنك إضافة Application Insights إلى البرنامج النصي في الصفحة الخاصة بك وتحصل على توقيت تحميل الصفحة واستدعاءات AJAX، وعدد وتفاصيل استثناءات المتصفح وفشل AJAX، وأعداد المستخدمين والجلسات. هذا الحقل اختياري، ويتم تعيينه إلى false افتراضيًا.
    • ServerEnabled="true" يرسل UserJourneyRecorder JSON الحالي كحدث مخصص إلى Application Insights.

    على سبيل المثال:

    <TrustFrameworkPolicy
      ...
      TenantId="fabrikamb2c.onmicrosoft.com"
      PolicyId="SignUpOrSignInWithAAD"
      DeploymentMode="Development"
      UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    >
    ...
    <RelyingParty>
      <DefaultUserJourney ReferenceId="UserJourney ID from your extensions policy, or equivalent (for example: SignUpOrSigninWithAzureAD)" />
      <Endpoints>
         <!--points to refresh token journey when app makes refresh token request-->
         <Endpoint Id="Token" UserJourneyReferenceId="RedeemRefreshToken" />
      </Endpoints>
      <UserJourneyBehaviors>
        <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. تحميل النهج.

تسجيل الدخول في Application Insights

هناك تأخير قصير، عادة أقل من خمس دقائق، قبل أن تتمكن من رؤية سجلات جديدة في Application Insights.

  1. افتح مورد Application Insights الذي قمت بإنشائه في مدخل Azure.
  2. من صفحة نظرة عامة، ⁧⁩حدد ⁧السجلات⁩.
  3. افتح علامة تبويب جديدة في Application Insights.

فيما يلي قائمة بالاستعلامات التي يمكنك استخدامها لمشاهدة السجلات:

الاستعلام ‏‏الوصف
traces الحصول على كافة السجلات التي تم إنشاؤها من Azure AD B2C
traces | where timestamp > ago(1d) الحصول على كافة السجلات التي تم إنشاؤها بواسطة Azure AD B2C لآخر يوم.
traces | where message contains "exception" | where timestamp > ago(2h) الحصول على كافة السجلات مع أخطاء لآخر ساعتين.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" الحصول على كافة السجلات التي تم إنشاؤها من خلال Azure AD B2C contoso.onmicrosoft.com المستأجر، ورحلة المستخدم b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "00000000-0000-0000-0000-000000000000" الحصول على كافة السجلات التي تم إنشاؤها من خلال Azure AD B2C للحصول على معرف ارتباط. استبدل معرف الارتباط بمعرف ارتباط خاص بك.

يحتمل أن تكون الإدخالات طويلة. تصدير إلى CSV لإلقاء نظرة وثيقة.

لمزيدٍ من المعلومات حول الاستعلامات، راجع نظرة عامة على استعلامات السجل في Azure Monitor.

راجع السجلات في ملحق رمز VS

نوصي بتثبيت extension Azure AD B2C لـ VS Code. مع ملحق B2C AD Azure، يتم تنظيم السجلات لك حسب اسم النهج ومعرف الارتباط (Application Insights يعرض الرقم الأول من معرف الارتباط) والطابع الزمني للسجلات. تساعدك هذه الميزة في العثور على السجل ذي الصلة استنادًا إلى الطابع الزمني المحلي ومراجعة رحلة المستخدم كما تم تنفيذها من خلال Azure AD B2C.

إشعار

قام المجتمع بتطوير ملحق VS Code لمساعدة الأشخاص على تنفيذ حلول Azure AD B2C وصيانتها. الملحق غير معتمد من Microsoft، ويتم توفيره بشكل صارم كما هو الحال.

تعيين الوصول إلى واجهة برمجة تطبيقات Application Insights

بعد إعداد Application Insights وتكوين النهج المخصص، تحتاج إلى الحصول على معرف API في Application Insights وإنشاء مفتاح API. يتم استخدام كل من معرف API ومفتاح API من خلال ملحق Azure AD B2C لقراءة أحداث Application Insights (القياس عن بُعد). يجب أن تدار مفاتيح API مثل كلمات المرور. أبقيها سرية.

إشعار

يتم استخدام مفتاح أدوات Application Insights الذي تم إنشاؤه مسبقًا من Azure AD B2C لإرسال العدادات عن بُعد إلى Application Insights. يمكنك استخدام مفتاح الأجهزة فقط في نهج Azure AD B2C، وليس في ملحق VS Code.

للحصول على معرف ومفتاح Application Insights:

  1. في مدخل Azure، افتح مورد Application Insights للتطبيق الخاص بك.

  2. حدد تكوين، ثم حدد وصول واجهة برمجة التطبيقات.

  3. انسخ معرف التطبيق

  4. حدد إنشاء مفتاح واجهة برمجة تطبيقات

  5. حدد خانة قراءة القياس عن بُعد.

  6. انسخ المفتاح قبل إغلاق خانة إنشاء مفتاح واجهة برمجة التطبيقات واحفظه في مكان آمن. إذا فقدت المفتاح، فستحتاج إلى إنشاء مفتاح آخر.

    Screenshot that demonstrates how to create API access key.

إعداد ملحق تعليمة VS الظاهرية في Azure AD B2C

الآن بعد أن أصبح لديك معرف واجهة برمجة تطبيقات رؤى تطبيق Azure والمفتاح، يمكنك تكوين ملحق VS Code لقراءة السجلات. يوفر ملحق تعليمة VS الظاهرية في Azure AD B2C نطاقين للإعدادات:

  • الإعدادات العمومية للمستخدم - الإعدادات التي تنطبق بشكل عمومي على أي مثيل لتعليمة VS الظاهرية تفتحه.
  • مساحة عمل الإعدادات - الإعدادات المخزنة داخل مساحة العمل الخاصة بك وتستخدمها فقط عند فتح مساحة العمل (باستخدام تعليمة VS الظاهرية فتح مجلد).
  1. من مستكشف Azure AD B2C Trace انقر على أيقونة الإعدادات.

    Screenshot that demonstrates select the application insights settings.

  2. تقديم معرّف و مفتاح في Application Insights.

  3. انقر فوق حفظ

بعد حفظ الإعدادات، تظهر سجلات Application insights على نافذة Azure AD B2C Trace (App Insights ).

Screenshot of Azure AD B2C extension for vscode, presenting the Azure Application insights trace.

تكوين Application Insights في الإنتاج

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

  1. قم بتعيين سمة DeploymentMode في TrustFrameworkPolicy إلى Production.

    <TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0"
    TenantId="yourtenant.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin"
    PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_signup_signin"
    DeploymentMode="Production"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights">
    
  2. قم بتعيين DeveloperMode في JourneyInsights إلى false .

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Your Application Insights Key}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. قم بتحميل النهج واختباره.

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