Komma åt Azure AD B2C-granskningsloggar
Azure Active Directory B2C (Azure AD B2C) skickar spårningsloggar med aktivitetsinformation om B2C-resurser, utfärdade token och administratörsåtkomst. Den här artikeln innehåller en kort översikt över den information som är tillgänglig i granskningsloggar och instruktioner om hur du kommer åt dessa data för din Azure AD B2C-klientorganisation.
Granskningslogghändelser behålls bara i sju dagar. Planera att ladda ned och lagra loggarna med någon av metoderna som visas nedan om du behöver en längre kvarhållningsperiod.
Anteckning
Du kan inte se användarinloggningar för enskilda Azure AD B2C-program under avsnittet Användare i Microsoft Entra-ID eller Azure AD B2C-sidor i Azure Portal. Inloggningshändelserna där visar användaraktivitet, men kan inte korreleras tillbaka till B2C-programmet som användaren loggade in på. Du måste använda granskningsloggarna för detta, enligt beskrivningen i den här artikeln.
Översikt över aktiviteter som är tillgängliga i B2C-kategorin för granskningsloggar
B2C-kategorin i granskningsloggar innehåller följande typer av aktiviteter:
Aktivitetstyp | Description |
---|---|
Auktorisering | Aktiviteter som rör auktorisering av en användare för åtkomst till B2C-resurser (till exempel en administratör som har åtkomst till en lista över B2C-principer). |
Katalog | Aktiviteter relaterade till katalogattribut som hämtas när en administratör loggar in med hjälp av Azure Portal. |
Program | Skapa, läsa, uppdatera och ta bort åtgärder (CRUD) i B2C-program. |
Nyckel | CRUD-åtgärder på nycklar som lagras i en B2C-nyckelcontainer. |
Resurs | CRUD-åtgärder på B2C-resurser. Till exempel principer och identitetsprovidrar. |
Autentisering | Validering av användarautentiseringsuppgifter och tokenutfärdning. |
För CRUD-aktiviteter för användarobjekt läser du kategorin Core Directory .
Exempelaktivitet
Den här exempelbilden från Azure Portal visar data som samlas in när en användare loggar in med en extern identitetsprovider, i det här fallet Facebook:
Panelen med aktivitetsinformation innehåller följande relevanta information:
Avsnitt | Fält | Beskrivning |
---|---|---|
Aktivitet | Name | Vilken aktivitet ägde rum. Till exempel Utfärda en id_token till programmet, som avslutar den faktiska användarinloggningen. |
Initierad av (aktör) | ObjectId | Objekt-ID för B2C-programmet som användaren loggar in på. Den här identifieraren visas inte i Azure Portal, men är tillgänglig via Microsoft Graph API. |
Initierad av (aktör) | Spn | Program-ID för B2C-programmet som användaren loggar in på. |
Mål | ObjectId | Objekt-ID för användaren som loggar in. |
Ytterligare information | TenantId | Klientorganisations-ID för Azure AD B2C-klientorganisation. |
Ytterligare information | PolicyId | Princip-ID för användarflödet (principen) som används för att logga in användaren. |
Ytterligare information | ApplicationId | Program-ID för B2C-programmet som användaren loggar in på. |
Visa granskningsloggar i Azure Portal
Azure Portal ger åtkomst till granskningslogghändelserna i din Azure AD B2C-klientorganisation.
- Logga in på Azure-portalen.
- Växla till katalogen som innehåller din Azure AD B2C-klientorganisation och bläddra sedan till Azure AD B2C.
- Under Aktiviteter på den vänstra menyn väljer du Granskningsloggar.
En lista över aktivitetshändelser som loggats under de senaste sju dagarna visas.
Det finns flera filtreringsalternativ, bland annat:
- Aktivitetsresurstyp – Filtrera efter de aktivitetstyper som visas i tabellen i avsnittet Översikt över tillgängliga aktiviteter .
- Datum – Filtrera datumintervallet för de aktiviteter som visas.
Om du väljer en rad i listan visas aktivitetsinformationen för händelsen.
Om du vill ladda ned listan över aktivitetshändelser i en fil med kommaavgränsade värden (CSV) väljer du Ladda ned.
Hämta granskningsloggar med Microsoft Entra rapporterings-API:et
Granskningsloggar publiceras till samma pipeline som andra aktiviteter för Microsoft Entra-ID, så att de kan nås via Microsoft Entra rapporterings-API:et. Mer information finns i Komma igång med Microsoft Entra rapporterings-API:et.
Aktivera rapporterings-API-åtkomst
För att tillåta skript- eller programbaserad åtkomst till Microsoft Entra rapporterings-API:et behöver du ett program registrerat i din Azure AD B2C-klientorganisation med följande API-behörigheter. Du kan aktivera dessa behörigheter för en befintlig programregistrering i din B2C-klientorganisation eller skapa en ny som specifikt används med granskningsloggautomatisering.
- Microsoft Graph-programbehörigheter >> AuditLog > AuditLog.Read.All
Följ stegen i följande artikel för att registrera ett program med de behörigheter som krävs:
Hantera Azure AD B2C med Microsoft Graph
När du har registrerat ett program med lämpliga behörigheter kan du läsa avsnittet PowerShell-skript senare i den här artikeln för ett exempel på hur du kan hämta aktivitetshändelser med ett skript.
Åtkomst till API:et
Om du vill ladda ned Azure AD B2C-granskningslogghändelser via API:et filtrerar du loggarna i B2C
kategorin. Om du vill filtrera efter kategori använder du frågesträngsparametern filter
när du anropar Microsoft Entra rapport-API-slutpunkten.
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z
PowerShell-skript
Följande PowerShell-skript visar ett exempel på hur du frågar Microsoft Entra rapporterings-API:et. När du har frågat API:et skriver den ut de loggade händelserna till standardutdata och skriver sedan JSON-utdata till en fil.
Du kan prova det här skriptet i Azure Cloud Shell. Se till att uppdatera den med ditt program-ID, klienthemlighet och namnet på din Azure AD B2C-klientorganisation.
# 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"
}
Här är JSON-representationen av exempelaktivitetshändelsen som visades tidigare i artikeln:
{
"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ästa steg
Du kan automatisera andra administrationsuppgifter, till exempel hantera Azure AD B2C-användarkonton med Microsoft Graph.