Freigeben über


Zugreifen auf Azure AD B2C-Überwachungsprotokolle

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Hinweis

Dieses Feature befindet sich in der öffentlichen Vorschau.

Azure Active Directory B2C (Azure AD B2C) gibt Überwachungsprotokolle aus, die Aktivitätsinformationen über B2C-Ressourcen, ausgestellte Token und Administratorzugriff enthalten. Dieser Artikel enthält eine kurze Übersicht über die Informationen, die in Überwachungsprotokollen und Anweisungen zum Zugreifen auf diese Daten für Ihren Azure AD B2C-Mandanten verfügbar sind.

Überwachungsprotokollereignisse werden nur sieben Tage lang aufbewahrt. Planen Sie, Ihre Protokolle mithilfe einer der unten gezeigten Methoden herunterzuladen und zu speichern, wenn Sie einen längeren Aufbewahrungszeitraum benötigen.

Hinweis

Sie können keine Benutzeranmeldungen für einzelne Azure AD B2C-Anwendungen im Abschnitt "Benutzer " der Seiten "Microsoft Entra ID " oder "Azure AD B2C " im Azure-Portal anzeigen. Die Dort angezeigten Anmeldeereignisse zeigen Benutzeraktivitäten an, können aber nicht mit der B2C-Anwendung korreliert werden, bei der sich der Benutzer angemeldet hat. Sie müssen die Überwachungsprotokolle dafür verwenden, wie weiter in diesem Artikel erläutert.

Übersicht über aktivitäten, die in der B2C-Kategorie von Überwachungsprotokollen verfügbar sind

Die B2C-Kategorie in Überwachungsprotokollen enthält die folgenden Arten von Aktivitäten:

Aktivitätstyp BESCHREIBUNG
Autorisierung Aktivitäten zur Autorisierung eines Benutzers für den Zugriff auf B2C-Ressourcen (z. B. ein Administrator, der auf eine Liste der B2C-Richtlinien zugreift).
Verzeichnis Aktivitäten im Zusammenhang mit Verzeichnisattributen, die abgerufen werden, wenn sich ein Administrator über das Azure-Portal anmeldet.
Anwendung Erstellen, Lesen, Aktualisieren und Löschen (CRUD)-Vorgänge in B2C-Anwendungen.
Schlüssel CRUD-Vorgänge für Schlüssel, die in einem B2C-Schlüsselcontainer gespeichert sind.
Ressource CRUD-Vorgänge für B2C-Ressourcen. Beispiel: Richtlinien und Identitätsanbieter.
Authentifizierung Überprüfung von Benutzeranmeldeinformationen und Tokenausstellung.

Informationen zu CRUD-Aktivitäten des Benutzerobjekts finden Sie in der Core Directory-Kategorie .

Beispielaktivität

Dieses Beispielbild aus dem Azure-Portal zeigt die erfassten Daten, wenn sich ein Benutzer mit einem externen Identitätsanbieter anmeldet, in diesem Fall Facebook:

Beispiel für die Seite

Der Bereich "Aktivitätsdetails" enthält die folgenden relevanten Informationen:

`Section` Feld BESCHREIBUNG
Aktivität Name Welche Aktivität stattgefunden hat. Geben Sie beispielsweise eine id_token an die Anwendung aus, wodurch die tatsächliche Benutzeranmeldung beendet wird.
Initiiert von (Actor) Objekt-ID Die Objekt-ID der B2C-Anwendung, bei der sich der Benutzer anmeldet. Dieser Bezeichner ist im Azure-Portal nicht sichtbar, aber über die Microsoft Graph-API zugänglich.
Initiiert von (Actor) Spn Die Anwendungs-ID der B2C-Anwendung, bei der sich der Benutzer anmeldet.
Ziel(n) Objekt-ID Die Objekt-ID des Benutzers, der sich anmeldet.
Zusätzliche Details Mieter-ID Die Mandanten-ID des Azure AD B2C-Mandanten.
Zusätzliche Details `PolicyId` Die Richtlinien-ID des Benutzerflusses (Richtlinie), der zum Anmelden des Benutzers verwendet wird.
Zusätzliche Details ApplicationId Die Anwendungs-ID der B2C-Anwendung, bei der sich der Benutzer anmeldet.

Anzeigen von Überwachungsprotokollen im Azure-Portal

Das Azure-Portal bietet Zugriff auf die Überwachungsprotokollereignisse in Ihrem Azure AD B2C-Mandanten.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wechseln Sie zu dem Verzeichnis, das Ihren Azure AD B2C-Mandanten enthält, und navigieren Sie dann zu Azure AD B2C.
  3. Wählen Sie unter "Aktivitäten " im linken Menü " Überwachungsprotokolle" aus.

Eine Liste der Aktivitätsereignisse, die in den letzten sieben Tagen protokolliert werden, wird angezeigt.

Beispielfilter mit zwei Aktivitätsereignissen im Azure-Portal

Es stehen verschiedene Filteroptionen zur Verfügung, darunter:

Wenn Sie eine Zeile in der Liste auswählen, werden die Aktivitätsdetails für das Ereignis angezeigt.

Um die Liste der Aktivitätsereignisse in einer CSV-Datei (Comma separated values) herunterzuladen, wählen Sie "Herunterladen" aus.

Abrufen von Überwachungsprotokollen mit der Microsoft Entra-Berichterstellungs-API

Überwachungsprotokolle werden in derselben Pipeline veröffentlicht wie andere Aktivitäten für Microsoft Entra ID, sodass sie über die Microsoft Entra-Berichterstellungs-API aufgerufen werden können. Weitere Informationen finden Sie unter "Erste Schritte mit der Microsoft Entra-Berichterstellungs-API".

Aktivieren des Berichts-API-Zugriffs

Um skript- oder anwendungsbasierten Zugriff auf die Microsoft Entra-Berichterstellungs-API zu ermöglichen, benötigen Sie eine Anwendung, die in Ihrem Azure AD B2C-Mandanten mit den folgenden API-Berechtigungen registriert ist. Sie können diese Berechtigungen für eine vorhandene Anwendungsregistrierung innerhalb Ihres B2C-Mandanten aktivieren oder einen neuen speziell für die Verwendung mit der Überwachungsprotokollautomatisierung erstellen.

  • „Microsoft Graph“ > „Anwendungsberechtigungen“ > „AuditLog“ > „AuditLog.Read.All“

Führen Sie die Schritte im folgenden Artikel aus, um eine Anwendung mit den erforderlichen Berechtigungen zu registrieren:

Verwalten von Azure AD B2C mit Microsoft Graph

Nachdem Sie eine Anwendung mit den entsprechenden Berechtigungen registriert haben, finden Sie weiter unten in diesem Artikel im PowerShell-Skriptabschnitt ein Beispiel dafür, wie Sie Aktivitätsereignisse mit einem Skript abrufen können.

Zugreifen auf die API

Um Azure AD B2C-Überwachungsprotokollereignisse über die API herunterzuladen, filtern Sie die Protokolle in der B2C Kategorie. Verwenden Sie zum Filtern nach Kategorie den filter Abfragezeichenfolgenparameter, wenn Sie den Microsoft Entra-Berichts-API-Endpunkt aufrufen.

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

PowerShell-Skript

Das folgende PowerShell-Skript zeigt ein Beispiel für das Abfragen der Microsoft Entra-Berichts-API. Nach der Abfrage der API druckt sie die protokollierten Ereignisse in die Standardausgabe und schreibt dann die JSON-Ausgabe in eine Datei.

Sie können dieses Skript in der Azure Cloud Shell ausprobieren. Achten Sie darauf, sie mit Ihrer Anwendungs-ID, Ihrem geheimen Clientschlüssel und dem Namen Ihres Azure AD B2C-Mandanten zu aktualisieren.

# 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"
}

Dies ist die JSON-Darstellung des Beispielaktivitätsereignisses weiter oben im Artikel:

{
    "id": "B2C_DQO3J_4984536",
    "category": "Authentication",
    "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
    "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"
        }
    ]
}

Nächste Schritte

Sie können andere Verwaltungsaufgaben automatisieren, z. B. Azure AD B2C-Benutzerkonten mit Microsoft Graph verwalten.