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ájában elérhető tevékenységek áttekintése

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.

Példatevékenység

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:

Példa a Naplótevékenység részletei lapra a Azure Portal

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.

Naplók megtekintése a Azure Portal

A Azure Portal hozzáférést biztosít a Azure AD B2C-bérlő naplóeseményeihez.

  1. Jelentkezzen be az Azure Portalra.
  2. Váltson a Azure AD B2C-bérlőt tartalmazó könyvtárra, majd keresse meg a Azure AD B2C-t.
  3. 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.

Példaszűrés két tevékenységeseménysel a Azure Portal

Számos szűrési lehetőség érhető el, például:

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.

Auditnaplók lekérése a Microsoft Entra reporting API-val

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.

Jelentéskészítési API-hozzáférés engedélyezése

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.

Hozzáférés az API-hoz

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

PowerShell-parancsprogram

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

Következő lépések

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.