Udostępnij za pośrednictwem


Uzyskiwanie dostępu do dzienników inspekcji usługi Azure AD B2C

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Uwaga / Notatka

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Usługa Azure Active Directory B2C (Azure AD B2C) emituje dzienniki inspekcji zawierające informacje o aktywności dotyczące zasobów B2C, wystawionych tokenów i dostępu administratora. Niniejszy artykuł zawiera krótkie omówienie informacji dostępnych w dziennikach inspekcji oraz instrukcje dotyczące uzyskiwania dostępu do danych związanych z dzierżawą usługi Azure AD B2C.

Zdarzenia dziennika inspekcji są zachowywane tylko przez siedem dni. Zaplanuj pobieranie i przechowywanie dzienników przy użyciu jednej z poniższych metod, jeśli potrzebujesz dłuższego okresu przechowywania.

Uwaga / Notatka

Logowania użytkowników dla poszczególnych aplikacji usługi Azure AD B2C nie są widoczne w sekcji Użytkownicy stron Microsoft Entra ID lub Azure AD B2C w witrynie Azure Portal. Zdarzenia logowania pokazują aktywność użytkownika, ale nie można ich skorelować z aplikacją B2C zalogowaną przez użytkownika. W tym celu należy użyć dzienników inspekcji, zgodnie z opisem w tym artykule.

Omówienie działań dostępnych w kategorii B2C dzienników inspekcji

Kategoria B2C w dziennikach inspekcji zawiera następujące typy działań:

Typ działania Opis
Autoryzacja Działania dotyczące autoryzacji użytkownika w celu uzyskania dostępu do zasobów B2C (na przykład administrator uzyskuje dostęp do listy zasad B2C).
Katalog Działania związane z atrybutami katalogu, które są pobierane, gdy administrator zaloguje się za pomocą portalu Azure.
Aplikacja Tworzenie, odczytywanie, aktualizowanie i usuwanie operacji (CRUD) w aplikacjach B2C.
Klawisz Operacje CRUD na kluczach przechowywanych w kontenerze kluczy B2C.
Zasób Operacje CRUD na zasobach B2C. Na przykład polityki i dostawcy usług tożsamości.
Uwierzytelnianie Walidacja poświadczeń użytkownika i wystawiania tokenu.

W przypadku działań CRUD obiektu użytkownika zapoznaj się z kategorią Katalog podstawowy .

Przykładowe działanie

Ten przykładowy obraz z witryny Azure Portal przedstawia dane przechwycone po zalogowaniu się użytkownika za pomocą zewnętrznego dostawcy tożsamości, w tym przypadku serwisu Facebook:

Przykład strony szczegółów aktywności dziennika audytu w portalu Azure

Panel szczegółów działania zawiera następujące istotne informacje:

Sekcja (No changes needed) Opis
Aktywność Nazwa Które działanie miało miejsce. Na przykład wystaw id_token dla aplikacji, co kończy rzeczywiste logowanie użytkownika.
Zainicjowane przez (aktor) Identyfikator Obiektu Identyfikator obiektu aplikacji B2C, do której loguje się użytkownik. Ten identyfikator nie jest widoczny w witrynie Azure Portal, ale jest dostępny za pośrednictwem interfejsu API programu Microsoft Graph.
Zainicjowane przez (aktor) Spn Identyfikator aplikacji B2C, do której loguje się użytkownik.
Elementy docelowe Identyfikator Obiektu Identyfikator obiektu użytkownika, który się loguje.
Dodatkowe szczegóły Identyfikator najemcy Identyfikator najemcy dla dzierżawy usługi Azure AD B2C.
Dodatkowe szczegóły IdentyfikatorPolityki Identyfikator zasad przepływu użytkownika (zasad) używany do logowania użytkownika.
Dodatkowe szczegóły Identyfikator aplikacji Identyfikator aplikacji B2C, do której loguje się użytkownik.

Wyświetlanie dzienników inspekcji w witrynie Azure Portal

Witryna Azure Portal zapewnia dostęp do zdarzeń dziennika inspekcji w dzierżawie usługi Azure AD B2C.

  1. Zaloguj się do witryny Azure Portal.
  2. Przejdź do katalogu zawierającego dzierżawę usługi Azure AD B2C, a następnie przejdź do usługi Azure AD B2C.
  3. W obszarze Działania w menu po lewej stronie wybierz pozycję Dzienniki inspekcji.

Zostanie wyświetlona lista zdarzeń aktywności zarejestrowanych w ciągu ostatnich siedmiu dni.

Przykładowy filtr z dwoma zdarzeniami działania w witrynie Azure Portal

Dostępnych jest kilka opcji filtrowania, w tym:

  • Typ zasobu działania — filtruj według typów działań przedstawionych w tabeli w sekcji Przegląd dostępnych działań .
  • Date — filtruj zakres dat wyświetlanych działań.

Jeśli wybierzesz wiersz na liście, zostaną wyświetlone szczegóły działania dla zdarzenia.

Aby pobrać listę zdarzeń działań w pliku wartości rozdzielanych przecinkami (CSV), wybierz pozycję Pobierz.

Pobierz dzienniki inspekcji za pomocą interfejsu API raportowania Microsoft Entra

Dzienniki inspekcji są publikowane w tym samym potoku, co inne działania dla Microsoft Entra ID, dzięki czemu można uzyskać do nich dostęp za pośrednictwem interfejsu API raportowania Microsoft Entra. Aby uzyskać więcej informacji, zobacz Wprowadzenie do interfejsu API raportowania Entra firmy Microsoft.

Włącz dostęp do interfejsu API raportowania

Aby zezwolić na dostęp oparty na skryptach lub aplikacjach do interfejsu API raportowania Microsoft Entra, musisz zarejestrować aplikację w dzierżawie usługi Azure AD B2C z następującymi uprawnieniami API. Możesz włączyć te uprawnienia na istniejącej rejestracji aplikacji w dzierżawie usługi B2C lub utworzyć nowe, specjalnie do automatyzacji dziennika audytu.

  • Microsoft Graph > Uprawnienia aplikacji > AuditLog > AuditLog.Read.All

Wykonaj kroki opisane w poniższym artykule, aby zarejestrować aplikację z wymaganymi uprawnieniami:

Zarządzanie usługą Azure AD B2C za pomocą programu Microsoft Graph

Po zarejestrowaniu aplikacji z odpowiednimi uprawnieniami, w dalszej części tego artykułu zobacz sekcję dotyczącą skryptu PowerShell, aby zapoznać się z przykładem, jak można pobierać zdarzenia aktywności za pomocą skryptu.

Uzyskiwanie dostępu do interfejsu API

Aby pobrać zdarzenia dziennika inspekcji usługi Azure AD B2C za pośrednictwem interfejsu API, przefiltruj dzienniki w B2C kategorii. Aby filtrować według kategorii, użyj parametru filter ciągu zapytania podczas wywoływania punktu końcowego interfejsu API raportowania Firmy Microsoft Entra.

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

Skrypt programu PowerShell

Poniższy skrypt programu PowerShell przedstawia przykład zapytania do interfejsu API raportowania Microsoft Entra. Po wykonaniu zapytania względem interfejsu API, drukuje zarejestrowane zdarzenia na standardowe wyjście, a następnie zapisuje dane wyjściowe JSON do pliku.

Możesz wypróbować ten skrypt w usłudze Azure Cloud Shell. Pamiętaj, aby zaktualizować go przy użyciu identyfikatora aplikacji, klucza tajnego klienta i nazwy dzierżawy usługi 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"
}

Oto reprezentacja JSON przykładowego zdarzenia działania pokazanego wcześniej w artykule:

{
    "id": "B2C_DQO3J_4984536",
    "category": "Authentication",
    "correlationId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
    "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": "00001111-aaaa-2222-bbbb-3333cccc4444",
            "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"
        }
    ]
}

Dalsze kroki

Możesz zautomatyzować inne zadania administracyjne, na przykład zarządzać kontami użytkowników usługi Azure AD B2C za pomocą programu Microsoft Graph.