Zugriff auf Active Directory B2C-Überwachungsprotokolle
Azure Active Directory B2C (Azure AD B2C) gibt Überwachungsprotokolle aus, die Aktivitätsinformationen über B2C-Ressourcen, ausgestellte Token und Administratorzugriff enthalten. Dieser Artikel bietet eine kurze Übersicht über die in Überwachungsprotokollen verfügbaren Informationen sowie Anweisungen zum Zugreifen auf diese Daten für Ihren Azure AD B2C-Mandanten.
Überwachungsprotokollereignisse werden nur sieben Tage lang aufbewahrt. Planen Sie den Download und die Speicherung Ihrer Protokolle mit einer der unten aufgeführten Methoden, wenn eine längere Aufbewahrungsdauer erforderlich ist.
Hinweis
Im Azure-Portal werden auf der Seite Microsoft Entra ID oder Azure AD B2C im Abschnitt Benutzer keine Benutzeranmeldungen für einzelne Azure AD B2C-Anwendungen angezeigt. Für die dort aufgeführten Anmeldeereignisse werden zwar Benutzeraktivitäten angezeigt, aber auf die jeweilige B2C-Anwendung, bei der sich der Benutzer angemeldet hat, sind keine Rückschlüsse möglich. Hierfür müssen Sie die Überwachungsprotokolle verwenden. Wie Sie dabei vorgehen, wird in diesem Artikel beschrieben.
Übersicht der verfügbaren Aktivitäten in der B2C-Kategorie von Überwachungsprotokollen
Die B2C-Kategorie in Überwachungsprotokollen umfasst die folgenden Aktivitätstypen:
Aktivitätstyp | BESCHREIBUNG |
---|---|
Authorization | Aktivitäten, die sich auf die Autorisierung eines Benutzers für den Zugriff auf B2C-Ressourcen beziehen (z. B. ein Administrator, der auf eine Liste von B2C-Richtlinien zugreift). |
Verzeichnis | Aktivitäten im Zusammenhang mit Verzeichnisattributen, die abgerufen werden, wenn sich ein Administrator über das Azure-Portal anmeldet. |
Application | Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge (Create, Read, Update, Delete, CRUD) für B2C-Anwendungen. |
Key | CRUD-Vorgänge für in einem B2C-Schlüsselcontainer gespeicherte Schlüssel. |
Resource | CRUD-Vorgänge für B2C-Ressourcen. Beispielsweise Richtlinien und Identitätsanbieter. |
Authentifizierung | Überprüfung von Benutzeranmeldeinformationen und Tokenausstellung. |
Informationen zu den CRUD-Aktivitäten des Benutzerobjekts finden Sie in der Kategorie Hauptverzeichnis.
Beispielaktivität
Im folgenden Beispiel aus dem Azure-Portal sehen Sie die Daten, die erfasst werden, wenn sich ein Benutzer bei einem externen Identitätsanbieter (in diesem Fall Facebook) anmeldet:
Das Panel „Aktivitätsbereich“ enthält die folgenden wichtigen Informationen:
`Section` | Feld | BESCHREIBUNG |
---|---|---|
Aktivität | Name | Die ausgeführte Aktivität. Dies kann beispielsweise Issue an id_token to the application (ID-Token für die Anwendung ausstellen) sein, wodurch die Benutzeranmeldung abgeschlossen wird. |
Initiiert von (Akteur) | ObjectID | Die Objekt-ID der B2C-Anwendung, bei der sich der Benutzer anmeldet. Dieser Bezeichner ist im Azure-Portal nicht sichtbar, kann aber über die Microsoft Graph-API aufgerufen werden. |
Initiiert von (Akteur) | Spn | Die Anwendungs-ID der B2C-Anwendung, bei der sich der Benutzer anmeldet. |
Ziel(e) | ObjectID | Die Objekt-ID des Benutzers, der sich anmeldet. |
Zusätzliche Details | TenantId | Die Mandanten-ID des Azure AD B2C-Mandanten. |
Zusätzliche Details | PolicyId | Die Richtlinien-ID für den Benutzerfluss (Richtlinie), der zur Anmeldung 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.
- Melden Sie sich beim Azure-Portal an.
- Wechseln Sie zu dem Verzeichnis, das Ihren Azure AD B2C-Mandanten enthält, und navigieren Sie dann zu Azure AD B2C.
- Wählen Sie im linken Menü unter Aktivitäten die Option Überwachungsprotokolle aus.
Es wird eine Liste der Aktivitätsereignisse angezeigt, die in den letzten sieben Tagen protokolliert wurden.
Es sind mehrere Filteroptionen verfügbar, einschließlich:
- Aktivitätsressourcentyp: Filtern Sie nach den Aktivitätstypen, die in der Tabelle im Abschnitt Übersicht der verfügbaren Aktivitäten in der B2C-Kategorie von Überwachungsprotokollen aufgeführt sind.
- Datum: Filtern Sie den Datumsbereich der angezeigten Aktivitäten.
Wenn Sie eine Zeile in der Liste auswählen, werden die Aktivitätsdetails für das Ereignis angezeigt.
Zum Herunterladen der Liste der Aktivitätsereignisse in einer CSV-Datei wählen Sie Herunterladen aus.
Abrufen von Überwachungsprotokollen mit der Microsoft Entra-API für die Berichterstellung
Überwachungsprotokolle werden in der gleichen Pipeline wie andere Aktivitäten für Microsoft Entra ID veröffentlicht, sodass auf sie über die Microsoft Entra-API für die Berichterstellungs zugegriffen werden kann. Weitere Informationen finden Sie unter Erste Schritte mit der Microsoft Entra-API für die Berichterstellung.
Aktivieren des Zugriffs auf die Berichterstellungs-API
Um den 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 in Ihrem B2C-Mandanten aktivieren oder eine neue Anwendung erstellen, die speziell für die Verwendung mit der Überwachungsprotokollautomatisierung verwendet wird.
- „Microsoft Graph“ > „Anwendungsberechtigungen“ > „AuditLog“ > „AuditLog.Read.All“
Führen Sie die Schritte des folgenden Artikels aus, um eine Anwendung mit den erforderlichen Berechtigungen zu registrieren:
Verwalten von Azure AD B2C mit Microsoft Graph
Sehen Sie sich anschließend den Abschnitt „PowerShell-Skript“ weiter unten in diesem Artikel an. Dort wird anhand eines Beispiels gezeigt, wie Aktivitätsereignisse mit einem Skript abgerufen werden können.
Zugreifen auf die API
Wenn Sie Azure AD B2C-Überwachungsprotokollereignisse über die API herunterladen möchten, filtern Sie die Protokolle nach der Kategorie B2C
. Verwenden Sie zum Filtern nach Kategorie den Abfragezeichenfolgenparameter filter
, wenn Sie den Endpunkt der Microsoft Entra-Berichterstellungs-API aufrufen.
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z
PowerShell-Skript
Im folgenden PowerShell-Skript sehen Sie ein Beispiel für das Abfragen der Microsoft Entra ID-Berichterstellungs-API. Nach dem Abfragen der API werden die protokollierten Ereignisse an die Standardausgabe ausgegeben, und dann wird die JSON-Ausgabe in eine Datei geschrieben.
Sie können dieses Skript in der Azure Cloud Shell ausprobieren. Sie müssen es dann mit Ihrer Anwendungs-ID, dem Clientgeheimnis und dem Namen Ihres Azure AD B2C-Mandanten 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"
}
Nachfolgend sehen Sie die JSON-Darstellung des Beispielsaktivitätsereignisses, das weiter oben in diesem Artikel erörtert wurde:
{
"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"
}
]
}
Nächste Schritte
Sie können weitere Verwaltungsaufgaben automatisieren, etwa das Verwalten von Azure AD B2C-Benutzerkonten mit Microsoft Graph.