Toegang tot Azure AD B2C-auditlogboeken
Azure Active Directory B2C (Azure AD B2C) verzendt auditlogboeken met informatie over activiteiten over B2C-resources, uitgegeven tokens en beheerderstoegang. Dit artikel biedt een beknopt overzicht van de informatie die beschikbaar is in auditlogboeken en instructies voor toegang tot deze gegevens voor uw Azure AD B2C-tenant.
Auditlogboekgebeurtenissen worden slechts zeven dagen bewaard. Maak een planning om uw logboeken te downloaden en op te slaan met behulp van een van de onderstaande methoden als u een langere bewaarperiode nodig hebt.
Notitie
U kunt gebruikersaanmelding voor afzonderlijke Azure AD B2C-toepassingen niet zien in de sectie Gebruikers van de Microsoft Entra-id of Azure AD B2C-pagina's in de Azure Portal. De aanmeldingsgebeurtenissen daar tonen de gebruikersactiviteit, maar kunnen niet worden gecorreleerd aan de B2C-toepassing waarmee de gebruiker zich heeft aangemeld. Hiervoor moet u de auditlogboeken gebruiken, zoals later in dit artikel wordt uitgelegd.
Overzicht van activiteiten die beschikbaar zijn in de B2C-categorie auditlogboeken
De B2C-categorie in auditlogboeken bevat de volgende typen activiteiten:
Type activiteit | Description |
---|---|
Autorisatie | Activiteiten met betrekking tot de autorisatie van een gebruiker om toegang te krijgen tot B2C-resources (bijvoorbeeld een beheerder die een lijst met B2C-beleidsregels raadpleegt). |
Directory | Activiteiten met betrekking tot adreslijstkenmerken die worden opgehaald op het moment dat een beheerder zich aanmeldt via Azure Portal. |
Toepassing | CRUD-bewerkingen (maken, lezen, bijwerken en verwijderen) op B2C-toepassingen. |
Sleutel | CRUD-bewerkingen op sleutels die zijn opgeslagen in een B2C-sleutelcontainer. |
Resource | CRUD-bewerkingen op B2C-resources. Bijvoorbeeld beleidsregels en id-providers. |
Verificatie | Validatie van gebruikersreferenties en uitgifte van tokens |
Raadpleeg de categorie Core Directory voor CRUD-activiteiten voor gebruikersobjecten.
Voorbeeldactiviteit
In deze voorbeeldafbeelding uit Azure Portal worden de gegevens weergegeven die zijn vastgelegd wanneer een gebruiker zich aanmeldt bij een externe id-provider, in dit geval Facebook:
Het deelvenster met de details over activiteiten bevat de volgende relevante informatie:
Sectie | Veld | Description |
---|---|---|
Activiteit | Name | Welke activiteit heeft plaatsgevonden. Bijvoorbeeld Issue an id_token to the application, waarmee de werkelijke aanmelding van de gebruiker wordt afgerond. |
Initiated By (Actor) | ObjectId | De object-id van de B2C-toepassing waarbij de gebruiker zich aanmeldt. Deze id is niet zichtbaar in de Azure Portal, maar is toegankelijk via de Microsoft Graph API. |
Initiated By (Actor) | Spn | De toepassings-id van de B2C-toepassing waarbij de gebruiker zich aanmeldt. |
Doel(en) | ObjectId | De object-id van de gebruiker die zich aanmeldt. |
Aanvullende details | TenantId | De tenant-id van de Azure AD B2C-tenant. |
Aanvullende details | PolicyId | De beleids-id van de gebruikersstroom (beleid) die wordt gebruikt om de gebruiker aan te melden. |
Aanvullende details | ApplicationID | De toepassings-id van de B2C-toepassing waarbij de gebruiker zich aanmeldt. |
Auditlogboeken bekijken in Azure Portal
Azure Portal biedt toegang tot de auditlogboekgebeurtenissen in uw Azure AD B2C-tenant.
- Meld u aan bij de Azure-portal.
- Ga naar de map met uw Azure AD B2C-tenant en blader naar Azure AD B2C.
- Selecteer in het linkermenu onder Activiteiten de optie Auditlogboeken.
Er wordt een lijst weergegeven met activiteitsgebeurtenissen die in de afgelopen zeven dagen zijn geregistreerd.
Er zijn verschillende filteropties beschikbaar, waaronder:
- Type activiteitsresource: filter op de activiteitstypen die worden weergegeven in de tabel in de sectie Overzicht van de beschikbare activiteiten.
- Datum: filter het datumbereik van de weergegeven activiteiten.
Als u een rij in de lijst selecteert, worden de activiteitsgegevens voor de gebeurtenis weergegeven.
Als u de lijst met activiteitsgebeurtenissen in een CSV-bestand (door komma's gescheiden waarden) wilt downloaden, selecteert u Downloaden.
Auditlogboeken ophalen met de Microsoft Entra rapportage-API
Auditlogboeken worden gepubliceerd naar dezelfde pijplijn als andere activiteiten voor Microsoft Entra-id, zodat ze toegankelijk zijn via de Microsoft Entra rapportage-API. Zie Aan de slag met de Microsoft Entra rapportage-API voor meer informatie.
Toegang tot rapportage-API inschakelen
Als u op scripts of toepassingen gebaseerde toegang tot de Microsoft Entra rapportage-API wilt toestaan, hebt u een toepassing nodig die is geregistreerd in uw Azure AD B2C-tenant met de volgende API-machtigingen. U kunt deze machtigingen inschakelen voor een bestaande toepassingsregistratie in uw B2C-tenant of een nieuwe maken die u speciaal gebruikt voor de automatisering van auditlogboeken.
- Microsoft Graph > Toepassingsmachtigingen > Auditlogboek > AuditLog.Read.All
Volg de stappen in het volgende artikel om een toepassing te registreren met de vereiste machtigingen:
Azure AD B2C beheren met Microsoft Graph
Nadat u een toepassing met de juiste machtigingen hebt geregistreerd, raadpleegt u de sectie PowerShell-script verderop in dit artikel om aan de hand van een voorbeeld te zien hoe u activiteiten kunt ophalen met een script.
Toegang krijgen tot de API
Als u Azure AD B2C-auditlogboekgebeurtenissen via de API wilt downloaden, filtert u de logboeken in de B2C
-categorie. Als u wilt filteren op categorie, gebruikt u de filter
queryreeksparameter wanneer u het eindpunt van de Microsoft Entra rapportage-API aanroept.
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z
PowerShell-script
In het volgende PowerShell-script ziet u een voorbeeld van hoe u een query uitvoert op de Microsoft Entra rapportage-API. Nadat u een query op de API hebt uitgevoerd, worden de vastgelegde gebeurtenissen afgedrukt naar de standaarduitvoer en wordt de JSON-uitvoer naar een bestand geschreven.
U kunt dit script proberen in de Azure Cloud Shell. Zorg ervoor dat u deze bijwerkt met uw toepassings-id, clientgeheim en de naam van uw Azure AD B2C-tenant.
# 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"
}
Dit is de JSON-weergave van de activiteitsgebeurtenis die we eerder als voorbeeld in dit artikel hebben gebruikt:
{
"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"
}
]
}
Volgende stappen
U kunt andere beheertaken automatiseren. U kunt bijvoorbeeld Azure AD B2C-gebruikersaccounts beheren met Microsoft Graph.