Hozzáférés Azure AD B2C-naplókhoz
Az Azure Active Directory B2C (Azure AD B2C) a B2C-erőforrásokkal, kiadott tokenekkel és rendszergazdai hozzáféréssel kapcsolatos tevékenységinformációkat tartalmazó auditnaplókat bocsát ki. Ez a cikk rövid áttekintést nyújt az auditnaplókban elérhető információkról, és útmutatást nyújt arról, hogyan érheti el ezeket az adatokat a Azure AD B2C-bérlőhöz.
A naplóeseményeket csak hét napig őrzi meg a rendszer. Tervezze meg a naplók letöltését és tárolását az alábbi módszerek egyikével, ha hosszabb megőrzési időtartamra van szüksége.
Megjegyzés
Az egyes Azure AD B2C-alkalmazások felhasználói bejelentkezései nem láthatók az Microsoft Entra-azonosítóFelhasználók szakaszában, illetve Azure AD B2C-lapok a Azure Portal. Az ott található bejelentkezési események felhasználói tevékenységet mutatnak, de nem kapcsolhatók vissza ahhoz a B2C-alkalmazáshoz, amelybe a felhasználó bejelentkezett. Ehhez az auditnaplókat kell használnia, ahogy az ebben a cikkben is olvasható.
Az auditnaplók B2C-kategóriája a következő típusú tevékenységeket tartalmazza:
Tevékenység típusa | Leírás |
---|---|
Engedélyezés | A felhasználók B2C-erőforrásokhoz való hozzáférésének engedélyezésével kapcsolatos tevékenységek (például egy rendszergazda, aki hozzáfér a B2C-szabályzatok listájához). |
Címtár | A címtárattribútumokkal kapcsolatos tevékenységek, amelyek akkor lesznek lekérve, amikor egy rendszergazda bejelentkezik a Azure Portal. |
Alkalmazás | B2C-alkalmazásokon végzett létrehozási, olvasási, frissítési és törlési (CRUD) műveletek. |
Kulcs | CRUD-műveletek egy B2C kulcstárolóban tárolt kulcsokon. |
Erőforrás | CRUD-műveletek B2C-erőforrásokon. Például szabályzatok és identitásszolgáltatók. |
Hitelesítés | A felhasználói hitelesítő adatok és a jogkivonatok kiállításának ellenőrzése. |
A felhasználói objektum CRUD-tevékenységeihez tekintse meg a Core Directory kategóriát.
Ez a példakép a Azure Portal mutatja be azokat az adatokat, amelyek akkor vannak rögzítve, amikor egy felhasználó külső identitásszolgáltatóval jelentkezik be, ebben az esetben a Facebook:
A tevékenység részletei panel a következő releváns információkat tartalmazza:
Section | Mező | Leírás |
---|---|---|
Tevékenység | Name | Melyik tevékenység történt. Például állíts ki egy id_token az alkalmazásnak, amely befejezi a tényleges felhasználói bejelentkezést. |
Kezdeményező (színész) | ObjectId | Annak a B2C-alkalmazásnak az objektumazonosítója , amelybe a felhasználó bejelentkezik. Ez az azonosító nem látható a Azure Portal, de a Microsoft Graph API keresztül érhető el. |
Kezdeményező (színész) | Spn | Annak a B2C-alkalmazásnak az alkalmazásazonosítója , amelybe a felhasználó bejelentkezik. |
Cél(ok) | ObjectId | A bejelentkezett felhasználó objektumazonosítója . |
További részletek | TenantId | A Azure AD B2C-bérlő bérlőazonosítója. |
További részletek | PolicyId | A felhasználó bejelentkezéséhez használt felhasználói folyamat (szabályzat) házirend-azonosítója . |
További részletek | ApplicationId | Annak a B2C-alkalmazásnak az alkalmazásazonosítója , amelybe a felhasználó bejelentkezik. |
A Azure Portal hozzáférést biztosít a Azure AD B2C-bérlő naplóeseményeihez.
- Jelentkezzen be az Azure Portalra.
- Váltson a Azure AD B2C-bérlőt tartalmazó könyvtárra, majd keresse meg a Azure AD B2C-t.
- A bal oldali menü Tevékenységek területén válassza a Naplók lehetőséget.
Megjelenik az elmúlt hét napban naplózott tevékenységesemények listája.
Számos szűrési lehetőség érhető el, például:
- Tevékenység erőforrástípusa – Szűrjön a rendelkezésre álló tevékenységek áttekintése szakaszban található táblázatban látható tevékenységtípusok alapján.
- Dátum – Szűrje a megjelenített tevékenységek dátumtartományát.
Ha kiválaszt egy sort a listában, megjelenik az esemény tevékenységadatai.
Ha egy vesszővel tagolt értékfájlban (CSV) szeretné letölteni a tevékenységesemények listáját, válassza a Letöltés lehetőséget.
A naplók ugyanazon a folyamaton vannak közzétéve, mint a többi tevékenység az Microsoft Entra azonosítóhoz, így az Microsoft Entra jelentéskészítési API-val érhetők el. További információ: Ismerkedés a Microsoft Entra reporting API-val.
A Microsoft Entra jelentéskészítő API-hoz való szkript- vagy alkalmazásalapú hozzáférés engedélyezéséhez egy, a Azure AD B2C-bérlőben regisztrált alkalmazásra van szüksége az alábbi API-engedélyekkel. Engedélyezheti ezeket az engedélyeket egy meglévő alkalmazásregisztráción a B2C-bérlőn belül, vagy létrehozhat egy újat kifejezetten a naplóautomatizáláshoz.
- Microsoft Graph-alkalmazásengedélyek >> AuditLog > AuditLog.Read.All
Kövesse az alábbi cikkben leírt lépéseket egy alkalmazás regisztrálásához a szükséges engedélyekkel:
Az Azure AD B2C kezelése a Microsoft Graph használatával
Miután regisztrált egy megfelelő engedélyekkel rendelkező alkalmazást, tekintse meg a cikk későbbi, PowerShell-szkripttel foglalkozó szakaszát, amely bemutatja, hogyan szerezhet be tevékenységeseményeket egy szkripttel.
Ha Azure AD B2C naplózási naplóeseményeket szeretne letölteni az API-n keresztül, szűrje a naplókat a B2C
kategórián. Kategória szerinti szűréshez használja a lekérdezési filter
sztring paramétert a Microsoft Entra jelentéskészítési API-végpont meghívásakor.
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z
Az alábbi PowerShell-szkript egy példát mutat be a Microsoft Entra reporting API lekérdezésére. Az API lekérdezése után a naplózott eseményeket normál kimenetre nyomtatja, majd a JSON-kimenetet egy fájlba írja.
Ezt a szkriptet kipróbálhatja az Azure Cloud Shell. Mindenképpen frissítse az alkalmazásazonosítóval, az ügyfél titkos kódjával és a Azure AD B2C-bérlő nevével.
# 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"
}
A cikk korábbi részében látható példatevékenység-esemény JSON-ábrázolása:
{
"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"
}
]
}
Automatizálhat más adminisztrációs feladatokat, például kezelheti Azure AD B2C-felhasználói fiókokat a Microsoft Graph használatával.