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:
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.
- Přihlaste se k webu Azure Portal.
- Přepněte do adresáře, který obsahuje vašeho tenanta Azure AD B2C, a přejděte na Azure AD B2C.
- V části Aktivity v nabídce vlevo vyberte Protokoly auditu.
Zobrazí se seznam událostí aktivit zaznamenaných za posledních 7 dnů.
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.