Partilhar via


Aceder aos registos de auditoria do Azure AD B2C

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais nas nossas Perguntas Frequentes.

Observação

Este recurso está em pré-visualização pública.

O Azure Active Directory B2C (AAD B2C) emite registos de auditoria que contêm informações de atividade sobre recursos do B2C, tokens emitidos e acesso do administrador. Este artigo fornece uma breve visão geral das informações disponíveis nos logs de auditoria e instruções sobre como acessar esses dados para seu locatário do Azure AD B2C.

Os eventos de log de auditoria são retidos apenas por sete dias. Planeje baixar e armazenar seus logs usando um dos métodos mostrados abaixo se precisar de um período de retenção mais longo.

Observação

Não é possível ver entradas de usuário para aplicativos individuais do Azure AD B2C na seção Usuários das páginas Microsoft Entra ID ou Azure AD B2C no portal do Azure. Os eventos de entrada mostram a atividade do usuário, mas não podem ser correlacionados de volta ao aplicativo B2C no qual o usuário entrou. Você deve usar os logs de auditoria para isso, conforme explicado mais adiante neste artigo.

Visão geral das atividades disponíveis na categoria B2C de registos de auditoria

A categoria B2C nos logs de auditoria contém os seguintes tipos de atividades:

Tipo de atividade Descrição
Autorização Atividades relativas à autorização de um usuário para acessar recursos B2C (por exemplo, um administrador acessando uma lista de políticas B2C).
Diretório Atividades relacionadas a atributos de diretório recuperados quando um administrador entra usando o portal do Azure.
Aplicação Crie, leia, atualize e exclua operações (CRUD) em aplicativos B2C.
Chave Operações CRUD em chaves armazenadas num contêiner de chaves B2C.
Recurso Operações CRUD em recursos B2C. Por exemplo, políticas e provedores de identidade.
Autenticação Validação de credenciais de usuário e emissão de tokens.

Para atividades CRUD do objeto de usuário, consulte a categoria Diretório principal .

Exemplo de atividade

Esta imagem de exemplo do portal do Azure mostra os dados capturados quando um usuário entra com um provedor de identidade externo, neste caso, o Facebook:

Exemplo da página de Detalhes da Atividade do Log de Auditoria no portal do Azure

O painel de detalhes da atividade contém as seguintes informações relevantes:

Seção Campo Descrição
Atividade Nome Que atividade ocorreu. Por exemplo, emita um id_token para o aplicativo, que conclui o login real do usuário.
Iniciado por (Ator) IdentificadorDoObjeto A ID do objeto do aplicativo B2C no qual o usuário está entrando. Esse identificador não é visível no portal do Azure, mas pode ser acessado por meio da API do Microsoft Graph.
Iniciado por (Ator) Spn A ID da aplicação B2C em que o utilizador está a iniciar sessão.
Público(s)-alvo IdentificadorDoObjeto A ID do objeto do usuário que está entrando.
Detalhes Adicionais Id de Inquilino A ID do Inquilino do locatário do Azure AD B2C.
Detalhes Adicionais PolicyId A ID de política do fluxo do utilizador (política) utilizado para o registo do utilizador.
Detalhes Adicionais ApplicationId A ID da aplicação B2C em que o utilizador está a iniciar sessão.

Visualizar logs de auditoria no portal do Azure

O portal do Azure fornece acesso aos eventos de log de auditoria em seu locatário do Azure AD B2C.

  1. Inicie sessão no portal Azure.
  2. Alterne para o diretório que contém seu locatário do Azure AD B2C e navegue até Azure AD B2C.
  3. Em Atividades no menu à esquerda, selecione Logs de auditoria.

É apresentada uma lista de eventos de atividade registados nos últimos sete dias.

Exemplo de filtro com dois eventos de atividade no portal do Azure

Várias opções de filtragem estão disponíveis, incluindo:

Se você selecionar uma linha na lista, os detalhes da atividade do evento serão exibidos.

Para baixar a lista de eventos de atividade em um arquivo CSV (valores separados por vírgula), selecione Download.

Obter logs de auditoria com a API de relatórios do Microsoft Entra

Os logs de auditoria são publicados no mesmo pipeline que outras atividades do Microsoft Entra ID, permitindo que sejam acessíveis por meio da API de relatórios do Microsoft Entra. Para obter mais informações, consulte Introdução à API de relatórios do Microsoft Entra.

Habilitar o acesso à API de relatórios

Para permitir o acesso baseado em script ou aplicativo à API de relatórios do Microsoft Entra, você precisa de um aplicativo registrado em seu locatário do Azure AD B2C com as seguintes permissões de API. Você pode habilitar essas permissões em um registro de aplicação existente no seu tenant B2C ou criar um novo especificamente para uso com a automação de registo de auditoria.

  • Microsoft Graph > Permissões do aplicativo > AuditLog >, AuditLog.Read.All

Siga as etapas no seguinte artigo para registrar um aplicativo com as permissões necessárias:

Gerenciar o Azure AD B2C com o Microsoft Graph

Depois de registrar um aplicativo com as permissões apropriadas, consulte a seção de script do PowerShell mais adiante neste artigo para obter um exemplo de como você pode obter eventos de atividade com um script.

Acesse a API

Para baixar os eventos de log de auditoria do Azure AD B2C por meio da API, filtre os logs na categoria B2C. Para filtrar por categoria, utilize o parâmetro filter na string de consulta ao aceder ao ponto de extremidade da API de relatórios do 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

O script PowerShell a seguir mostra um exemplo de como consultar a API de relatório do Microsoft Entra. Depois de consultar a API, ele imprime os eventos registrados na saída padrão e, em seguida, grava a saída JSON em um arquivo.

Você pode tentar esse script no Azure Cloud Shell. Certifique-se de atualizá-lo com sua ID de aplicativo, segredo do cliente e o nome do locatário do 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"
}

Aqui está a representação JSON do evento de atividade de exemplo mostrado anteriormente no artigo:

{
    "id": "B2C_DQO3J_4984536",
    "category": "Authentication",
    "correlationId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
    "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"
        }
    ]
}

Próximos passos

Você pode automatizar outras tarefas de administração, por exemplo, gerenciar contas de usuário do Azure AD B2C com o Microsoft Graph.