Přístup k protokolům auditu Azure AD B2C

Azure Active Directory B2C (Azure AD B2C) generuje protokoly auditu obsahující informace o aktivitě prostředků B2C, vydaných tokenech a přístupu správce. Tento článek obsahuje stručný přehled informací dostupných v protokolech auditu a pokyny pro přístup k datům pro tenanta Azure AD B2C.

Události protokolu auditu se uchovávají pouze po dobu sedmi dnů. Pokud potřebujete delší dobu uchovávání, naplánujte si stažení a uložení protokolů pomocí jedné z níže uvedených metod.

Poznámka

Přihlášení uživatelů pro jednotlivé aplikace Azure AD B2C se nezobrazují v části UživateléMicrosoft Entra ID nebo Azure AD stránkách B2C v Azure Portal. Události přihlášení tam zobrazují aktivitu uživatele, ale nelze je korelovat zpět s aplikací B2C, ke které se uživatel přihlásil. K tomu musíte použít protokoly auditu, jak je vysvětleno dále v tomto článku.

Přehled aktivit dostupných v kategorii protokolů auditu B2C

Kategorie B2C v protokolech auditu obsahuje následující typy aktivit:

Typ aktivity Description
Autorizace Aktivity týkající se autorizace uživatele pro přístup k prostředkům B2C (například správce přistupující k seznamu zásad B2C)
Directory Aktivity související s atributy adresáře načtené, když se správce přihlásí pomocí Azure Portal.
Aplikace Operace vytvoření, čtení, aktualizace a odstranění (CRUD) v aplikacích B2C
Klíč Operace CRUD s klíči uloženými v kontejneru klíčů B2C
Prostředek Operace CRUD s prostředky B2C. Například zásady a zprostředkovatelé identit.
Authentication Ověření přihlašovacích údajů uživatele a vystavování tokenů

Aktivity CRUD objektu uživatele najdete v kategorii Základní adresář .

Příklad aktivity

Tento ukázkový obrázek z Azure Portal ukazuje data zachycená, když se uživatel přihlásí pomocí externího zprostředkovatele identity, v tomto případě Facebook:

Příklad stránky Podrobností o aktivitě protokolu auditu v Azure Portal

Panel podrobností o aktivitě obsahuje následující důležité informace:

Sekce Pole Description
Aktivita Name Ke které aktivitě došlo. Můžete například vydat id_token k aplikaci, která ukončí skutečné přihlášení uživatele.
Inicioval (actor) ObjectId ID objektu aplikace B2C, ke které se uživatel přihlašuje. Tento identifikátor není viditelný v Azure Portal, ale je přístupný prostřednictvím Graph API Microsoftu.
Inicioval (actor) Spn ID aplikace B2C, ke které se uživatel přihlašuje.
Cíle ObjectId ID objektu uživatele, který se přihlašuje.
Additional Details TenantId ID tenanta Azure AD B2C.
Additional Details PolicyId ID zásady toku uživatele (zásady), který se používá k přihlášení uživatele.
Additional Details ApplicationId ID aplikace B2C, ke které se uživatel přihlašuje.

Zobrazení protokolů auditu v Azure Portal

Azure Portal poskytuje přístup k událostem protokolu auditu ve vašem tenantovi Azure AD B2C.

  1. Přihlaste se k webu Azure Portal.
  2. Přepněte do adresáře, který obsahuje vašeho tenanta Azure AD B2C, a přejděte na Azure AD B2C.
  3. V části Aktivity v nabídce vlevo vyberte Protokoly auditu.

Zobrazí se seznam událostí aktivit zaznamenaných za posledních 7 dnů.

Příklad filtru se dvěma událostmi aktivity v Azure Portal

K dispozici je několik možností filtrování, mezi které patří:

  • Typ prostředku aktivity – Filtrujte podle typů aktivit uvedených v tabulce v části Přehled dostupných aktivit .
  • Date – filtruje rozsah kalendářních dat zobrazených aktivit.

Pokud vyberete řádek v seznamu, zobrazí se podrobnosti o aktivitě události.

Pokud chcete stáhnout seznam událostí aktivit v souboru s hodnotami oddělenými čárkami (CSV), vyberte Stáhnout.

Získání protokolů auditu pomocí rozhraní API pro generování sestav Microsoft Entra

Protokoly auditu se publikují ve stejném kanálu jako jiné aktivity pro id Microsoft Entra, aby k nim bylo možné přistupovat prostřednictvím rozhraní API pro generování sestav Microsoft Entra. Další informace najdete v tématu Začínáme s rozhraním API pro generování sestav Microsoft Entra.

Povolení přístupu k rozhraní API pro generování sestav

Pokud chcete povolit přístup k rozhraní API pro vytváření sestav Microsoft Entra na základě skriptů nebo aplikací, potřebujete aplikaci zaregistrovanou v tenantovi Azure AD B2C s následujícími oprávněními rozhraní API. Tato oprávnění můžete povolit pro existující registraci aplikace v rámci vašeho tenanta B2C nebo můžete vytvořit novou, která bude speciálně určená pro použití s automatizací protokolů auditu.

  • Oprávnění > aplikace Microsoft Graph > AuditLog > AuditLog.Read.All

Postupujte podle kroků v následujícím článku a zaregistrujte aplikaci s požadovanými oprávněními:

Správa služby Azure AD B2C s využitím Microsoft Graphu

Jakmile zaregistrujete aplikaci s příslušnými oprávněními, podívejte se do části Skript PowerShellu dále v tomto článku, kde najdete příklad, jak pomocí skriptu získat události aktivit.

Přístup k rozhraní API

Pokud chcete stáhnout události protokolu auditu Azure AD B2C prostřednictvím rozhraní API, vyfiltrujte protokoly podle B2C kategorie. Pokud chcete filtrovat podle kategorie, použijte filter parametr řetězce dotazu při volání koncového bodu rozhraní API pro generování sestav Microsoft Entra.

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

Skript prostředí PowerShell

Následující skript PowerShellu ukazuje příklad dotazování rozhraní API pro generování sestav Microsoft Entra. Po dotazování rozhraní API vytiskne protokolované události do standardního výstupu a pak zapíše výstup JSON do souboru.

Tento skript můžete vyzkoušet v Azure Cloud Shell. Nezapomeňte ho aktualizovat pomocí ID aplikace, tajného klíče klienta a názvu tenanta Azure AD B2C.

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

Tady je znázornění JSON ukázkové události aktivity uvedené výše v článku:

{
    "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"
        }
    ]
}

Další kroky

Můžete automatizovat další úlohy správy, například správu uživatelských účtů Azure AD B2C pomocí Microsoft Graphu.