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:

Voorbeeld van een pagina in het auditlogboek met activiteitendetails in Azure Portal

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.

  1. Meld u aan bij de Azure-portal.
  2. Ga naar de map met uw Azure AD B2C-tenant en blader naar Azure AD B2C.
  3. Selecteer in het linkermenu onder Activiteiten de optie Auditlogboeken.

Er wordt een lijst weergegeven met activiteitsgebeurtenissen die in de afgelopen zeven dagen zijn geregistreerd.

Voorbeeldfilter met twee activiteitsgebeurtenissen in Azure Portal

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.