مشاركة عبر


الوصول إلى سجلات التدقيق في Azure AD B2C

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

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

ملاحظة

لا يمكنك رؤية عمليات تسجيل دخول المستخدم لتطبيقات B2C Azure AD الفردية ضمن قسم المستخدمين في معرف Microsoft Entra أو صفحات B2C Azure AD في مدخل Microsoft Azure. تظهر أحداث تسجيل الدخول هناك نشاط المستخدم، ولكن لا يمكن ربطها مرة أخرى بتطبيق B2C الذي قام المستخدم بتسجيل الدخول إليه. يجب استخدام سجلات التدقيق لذلك، كما هو موضح في هذه المقالة.

نظرة عامة على الأنشطة المتاحة في فئة B2C من سجلات التدقيق

تحتوي الفئة B2C في سجلات التدقيق على أنواع الأنشطة التالية:

نوع النشاط الوصف
التخويل الأنشطة المتعلقة بتخويل المستخدم للوصول إلى موارد B2C (على سبيل المثال، يقوم مسؤول بالوصول إلى قائمة نُهج B2C)
الدليل الأنشطة المتعلقة بسمات الدليل التي يتم استردادها عند قيام مسؤول بتسجيل الدخول باستخدام مدخل Azure
التطبيق تنفيذ عمليات إنشاء البيانات وقراءتها وتحديثها وحذفها (CRUD) في تطبيقات B2C
المفتاح عمليات CRUD على المفاتيح المخزنة في حاوية مفاتيح B2C
المورد CRUD عمليات على موارد B2C. على سبيل المثال، النهج وموفري الهوية.
المصادقة التحقق من صحة بيانات اعتماد المستخدم وإصدار الرمز المميز

بالنسبة لأنشطة CRUD لكائن المستخدم، راجع فئة الدليل الأساسي.

مثال النشاط

تظهر هذه الصورة المثال من مدخل Azure البيانات التي تم التقاطها عند تسجيل دخول مستخدم مع موفر هوية خارجي، وفي هذه الحالة، فيسبوك:

مثال صفحة تفاصيل نشاط سجل التدقيق في مدخل Azure

تحتوي لوحة تفاصيل النشاط على المعلومات التالية ذات الصلة:

القسم الحقل الوصف
النشاط الاسم أي نشاط حدث. على سبيل المثال، إصدار id_token للتطبيق، الذي يختتم تسجيل دخول المستخدم الفعلي.
التي بدأها (ممثل) ObjectId معرف الكائن من تطبيق B2C الذي يقوم المستخدم بتسجيل الدخول إليه. هذا المعرف غير مرئي في مدخل Azure، ولكن يمكن الوصول إليه عبر واجهة برمجة تطبيقات Microsoft Graph.
التي بدأها (ممثل) Spn معرف الكائن من تطبيق B2C الذي يقوم المستخدم بتسجيل الدخول إليه.
الهدف (الأهداف) ObjectId معرف الكائن للمستخدم الذي يقوم بتسجيل الدخول.
التفاصيل الإضافية TenantID معرف المستأجر للمستأجر Azure AD B2C.
التفاصيل الإضافية معرف السياسة معرف نهج تدفق المستخدم (النهج) المستخدمة لتسجيل دخول المستخدم.
التفاصيل الإضافية معرف التطبيق معرف الكائن من تطبيق B2C الذي يقوم المستخدم بتسجيل الدخول إليه.

عرض سجلات التدقيق في مدخل Azure

يوفر مدخل Azure الوصول إلى أحداث سجل التدقيق في المستأجر Azure AD B2C.

  1. تسجيل الدخول إلى ⁧⁩مدخل Microsoft Azure⁧⁩.
  2. قم بالتبديل إلى الدليل الذي يحتوي على المستأجر Azure AD B2C، ثم استعرض للوصول إلى Azure AD B2C.
  3. ضمن الأنشطة في القائمة اليمنى، حدد سجلات التدقيق.

يتم عرض قائمة بأحداث النشاط التي تم تسجيلها خلال الأيام السبعة الماضية.

عامل تصفية مثال مع حدثين نشاط في مدخل Azure

تتوفر خيارات تصفية عديدة، بما في ذلك:

إذا قمت بتحديد صف في القائمة، يتم عرض تفاصيل النشاط للحدث.

لتنزيل قائمة أحداث النشاط في ملف قيم مفصولة بفاصلة (CSV)، حدد تنزيل.

الحصول على سجلات التدقيق باستخدام واجهة برمجة تطبيقات إعداد التقارير Microsoft Entra

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

تمكين الوصول إلى واجهة برمجة التطبيقات للإبلاغ

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

  • Microsoft Graph > أذونات التطبيق > AuditLog > AuditLog.Read.All

اتبع الخطوات الواردة في المقالة التالية لتسجيل تطبيق بالأذونات المطلوبة:

إدارة Azure AD B2C مع مايكروسوفت Graph

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

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

لتنزيل Azure AD B2C تدوين الأحداث سجل عبر API، تصفية سجلات على B2C الفئة. للتصفية حسب الفئة، استخدم معلمة filter سلسلة الاستعلام عند استدعاء نقطة نهاية واجهة برمجة تطبيقات إعداد التقارير Microsoft Entra.

https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z

البرنامج النصي ل PowerShell

يعرض البرنامج النصي PowerShell التالي مثالا على كيفية الاستعلام عن واجهة برمجة تطبيقات إعداد التقارير Microsoft Entra. بعد الاستعلام عن API، فإنه يطبع الأحداث المسجلة إلى الإخراج القياسي، ثم يكتب الإخراج JSON إلى ملف.

يمكنك تجربة هذا البرنامج النصي في Azure Cloud Shell. تأكد من تحديثه مع معرف التطبيق الخاص بك، وسرية العميل، واسم المستأجر Azure AD B2C.

# This script requires an application registration that's granted Microsoft Graph API permission
# https://learn.microsoft.com/azure/active-directory-b2c/microsoft-graph-get-started

# Constants
$ClientID       = "your-client-application-id-here"       # Insert your application's client ID, a GUID
$ClientSecret   = "your-client-application-secret-here"   # Insert your application's client secret value
$tenantdomain   = "your-b2c-tenant.onmicrosoft.com"       # Insert your Azure AD B2C tenant domain name

$loginURL       = "https://login.microsoftonline.com"
$resource       = "https://graph.microsoft.com"           # Microsoft Graph API resource URI
$7daysago       = "{0:s}" -f (get-date).AddDays(-7) + "Z" # Use 'AddMinutes(-5)' to decrement minutes, for example
Write-Output "Searching for events starting $7daysago"

# Create HTTP header, get an OAuth2 access token based on client id, secret and tenant domain
$body       = @{grant_type="client_credentials";resource=$resource;client_id=$ClientID;client_secret=$ClientSecret}
$oauth      = Invoke-RestMethod -Method Post -Uri $loginURL/$tenantdomain/oauth2/token?api-version=1.0 -Body $body

# Parse audit report items, save output to file(s): auditX.json, where X = 0 through n for number of nextLink pages
if ($oauth.access_token -ne $null) {
    $i=0
    $headerParams = @{'Authorization'="$($oauth.token_type) $($oauth.access_token)"}
    $url = "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?`$filter=loggedByService eq 'B2C' and activityDateTime gt  " + $7daysago

    # loop through each query page (1 through n)
    Do {
        # display each event on the console window
        Write-Output "Fetching data using Uri: $url"
        $myReport = (Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url)
        foreach ($event in ($myReport.Content | ConvertFrom-Json).value) {
            Write-Output ($event | ConvertTo-Json)
        }

        # save the query page to an output file
        Write-Output "Save the output to a file audit$i.json"
        $myReport.Content | Out-File -FilePath audit$i.json -Force
        $url = ($myReport.Content | ConvertFrom-Json).'@odata.nextLink'
        $i = $i+1
    } while($url -ne $null)
} else {
    Write-Host "ERROR: No Access Token"
}

فيما يلي تمثيل JSON لحدث نشاط المثال الموضح سابقا في المقالة:

{
    "id": "B2C_DQO3J_4984536",
    "category": "Authentication",
    "correlationId": "00000000-0000-0000-0000-000000000000",
    "result": "success",
    "resultReason": "N/A",
    "activityDisplayName": "Issue an id_token to the application",
    "activityDateTime": "2019-09-14T18:13:17.0618117Z",
    "loggedByService": "B2C",
    "operationType": "",
    "initiatedBy": {
        "user": null,
        "app": {
            "appId": "00000000-0000-0000-0000-000000000000",
            "displayName": null,
            "servicePrincipalId": null,
            "servicePrincipalName": "00000000-0000-0000-0000-000000000000"
        }
    },
    "targetResources": [
        {
            "id": "00000000-0000-0000-0000-000000000000",
            "displayName": null,
            "type": "User",
            "userPrincipalName": null,
            "groupType": null,
            "modifiedProperties": []
        }
    ],
    "additionalDetails": [
        {
            "key": "TenantId",
            "value": "test.onmicrosoft.com"
        },
        {
            "key": "PolicyId",
            "value": "B2C_1A_signup_signin"
        },
        {
            "key": "ApplicationId",
            "value": "00000000-0000-0000-0000-000000000000"
        },
        {
            "key": "Client",
            "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
        },
        {
            "key": "IdentityProviderName",
            "value": "facebook"
        },
        {
            "key": "IdentityProviderApplicationId",
            "value": "0000000000000000"
        },
        {
            "key": "ClientIpAddress",
            "value": "127.0.0.1"
        }
    ]
}

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

يمكنك أتمتة مهام الإدارة الأخرى، على سبيل المثال، إدارة حسابات مستخدمي Azure AD B2C مع Microsoft Graph.