Compartir a través de


Acceso a los registros de auditoría de Azure AD B2C

Importante

A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para ser adquirido por nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.

Nota:

Esta característica está en versión preliminar pública.

Azure Active Directory B2C (Azure AD B2C) emite registros de auditoría que contienen información sobre los recursos de B2C, los tokens emitidos y el acceso de administrador. En este artículo se proporciona una breve introducción a la información disponible en los registros de auditoría e instrucciones sobre cómo acceder a estos datos para el inquilino de Azure AD B2C.

Los eventos de registro de auditoría solo se conservan durante siete días. Planee descargar y almacenar los registros mediante uno de los métodos que se muestran a continuación si necesita un período de retención más largo.

Nota:

No puede ver inicios de sesión de usuario para aplicaciones individuales de Azure AD B2C en la sección Usuarios de las páginas Microsoft Entra ID o Azure AD B2C en Azure Portal. Los eventos de inicio de sesión muestran la actividad del usuario, pero no se pueden correlacionar con la aplicación B2C a la que el usuario inició sesión. Debe usar los registros de auditoría para ello, como se explica más en este artículo.

Información general sobre las actividades disponibles en la categoría B2C de registros de auditoría

La categoría B2C de los registros de auditoría contiene los siguientes tipos de actividades:

Tipo de actividad Descripción
Autorización Actividades relativas a la autorización de un usuario para acceder a los recursos B2C (por ejemplo, un administrador que accede a una lista de directivas B2C).
Directorio Actividades relacionadas con los atributos de directorio recuperados cuando un administrador inicia sesión mediante Azure Portal.
Aplicación Crear, leer, actualizar y eliminar operaciones (CRUD) en aplicaciones B2C.
Clave Operaciones CRUD en claves almacenadas en un contenedor de claves B2C.
Recurso Operaciones CRUD en recursos B2C. Por ejemplo, políticas y proveedores de identidad.
Autenticación Validación de credenciales de usuario y emisión de tokens.

Para las actividades CRUD de objeto de usuario, consulte la categoría Directorio principal .

Actividad de ejemplo

En esta imagen de ejemplo de Azure Portal se muestran los datos capturados cuando un usuario inicia sesión con un proveedor de identidades externo, en este caso, Facebook:

Ejemplo de la página de detalles de actividad del registro de auditoría en el portal de Azure

El panel de detalles de la actividad contiene la siguiente información relevante:

Sección Campo Descripción
Actividad Nombre Qué actividad tuvo lugar. Por ejemplo, emita un id_token a la aplicación, que concluye el inicio de sesión real del usuario.
Iniciado por (actor) ObjectId (identificador de objeto) Identificador de objeto de la aplicación B2C a la que el usuario inicia sesión. Este identificador no es visible en Azure Portal, pero es accesible a través de Microsoft Graph API.
Iniciado por (actor) Spn Identificador de aplicación de la aplicación B2C a la que el usuario inicia sesión.
Objetivo(s) ObjectId (identificador de objeto) Identificador de objeto del usuario que inicia sesión.
Detalles adicionales Id del inquilino El identificador de inquilino del inquilino de Azure AD B2C.
Detalles adicionales Identificador de política El identificador de directiva del flujo de usuario (directiva) que se usa para iniciar la sesión del usuario.
Detalles adicionales ApplicationId Identificador de aplicación de la aplicación B2C a la que el usuario inicia sesión.

Visualización de registros de auditoría en Azure Portal

Azure Portal proporciona acceso a los eventos de registro de auditoría del inquilino de Azure AD B2C.

  1. Inicie sesión en Azure Portal.
  2. Cambie al directorio que contiene su instancia de Azure AD B2C y luego vaya a Azure AD B2C.
  3. En Actividades en el menú de la izquierda, seleccione Registros de auditoría.

Se muestra una lista de eventos de actividad registrados en los últimos siete días.

Filtro de ejemplo con dos eventos de actividad en Azure Portal

Hay varias opciones de filtrado disponibles, entre las que se incluyen:

Si selecciona una fila en la lista, se muestran los detalles de la actividad del evento.

Para descargar la lista de eventos de actividad en un archivo de valores separados por comas (CSV), seleccione Descargar.

Obtención de registros de auditoría con la API de informes de Microsoft Entra

Los registros de auditoría se publican en la misma canalización que otras actividades para el identificador de Microsoft Entra, por lo que se puede acceder a ellos a través de la API de informes de Microsoft Entra. Para obtener más información, consulte Introducción a la API de informes de Microsoft Entra.

Habilitación del acceso a la API de informes

Para permitir el acceso basado en scripts o aplicaciones a la API de informes de Microsoft Entra, necesita una aplicación registrada en el inquilino de Azure AD B2C con los siguientes permisos de API. Puede habilitar estos permisos en un registro de aplicación existente dentro del entorno de B2C, o crear uno nuevo específicamente para su uso con la automatización de registros de auditoría.

  • Microsoft Graph > Permisos de aplicación > AuditLog > AuditLog.Read.All

Siga los pasos descritos en el siguiente artículo para registrar una aplicación con los permisos necesarios:

Administración de Azure AD B2C con Microsoft Graph

Después de registrar una aplicación con los permisos adecuados, consulte la sección Script de PowerShell más adelante en este artículo para obtener un ejemplo de cómo obtener eventos de actividad con un script.

Acceso a la API

Para descargar eventos de registro de auditoría de Azure AD B2C a través de la API, filtre los registros en la B2C categoría. Para filtrar por categoría, use el filter parámetro de cadena de consulta al llamar al punto de conexión de la API de informes de Microsoft Entra.

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

Script de PowerShell

El siguiente script de PowerShell muestra un ejemplo de cómo consultar la API de informes de Microsoft Entra. Después de consultar la API, imprime los eventos registrados en la salida estándar y, a continuación, escribe la salida JSON en un archivo.

Puede probar este script en Azure Cloud Shell. Asegúrese de actualizarlo con el identificador de aplicación, el secreto de cliente y el nombre del inquilino de 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"
}

Esta es la representación JSON del evento de actividad de ejemplo que se muestra anteriormente en el artículo:

{
    "id": "B2C_DQO3J_4984536",
    "category": "Authentication",
    "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
    "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": "00001111-aaaa-2222-bbbb-3333cccc4444",
            "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"
        }
    ]
}

Pasos siguientes

Puede automatizar otras tareas de administración, por ejemplo, administrar cuentas de usuario de Azure AD B2C con Microsoft Graph.