Aceder aos registos de auditoria do Azure AD B2C
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 descrição geral das informações disponíveis nos registos de auditoria e instruções sobre como aceder a estes dados para o seu inquilino Azure AD B2C.
Os eventos de registo de auditoria só são retidos durante sete dias. Planeie transferir e armazenar os registos com um dos métodos apresentados abaixo se precisar de um período de retenção mais longo.
Nota
Não pode ver inícios de sessão de utilizador para aplicações B2C Azure AD individuais na secção Utilizadores do ID do Microsoft Entra ou Azure AD páginas B2C no portal do Azure. Os eventos de início de sessão mostram a atividade do utilizador, mas não podem ser correlacionados com a aplicação B2C na qual o utilizador iniciou sessão. Tem de utilizar os registos de auditoria para tal, conforme explicado neste artigo.
Descrição geral das atividades disponíveis na categoria B2C dos registos de auditoria
A categoria B2C nos registos de auditoria contém os seguintes tipos de atividades:
Tipo de atividade | Description |
---|---|
Autorização | Atividades relacionadas com a autorização de um utilizador para aceder aos recursos B2C (por exemplo, um administrador que acede a uma lista de políticas B2C). |
Diretório | Atividades relacionadas com atributos de diretório obtidos quando um administrador inicia sessão com o portal do Azure. |
Aplicação | Crie, leia, atualize e elimine operações (CRUD) em aplicações B2C. |
Chave | Operações CRUD em chaves armazenadas num contentor de chaves B2C. |
Recurso | Operações CRUD em recursos B2C. Por exemplo, políticas e fornecedores de identidade. |
Autenticação | Validação de credenciais de utilizador e emissão de tokens. |
Para atividades CRUD de objeto de utilizador, veja a categoria Diretório Principal .
Atividade de exemplo
Esta imagem de exemplo do portal do Azure mostra os dados capturados quando um utilizador inicia sessão com um fornecedor de identidade externo, neste caso, o Facebook:
O painel de detalhes da atividade contém as seguintes informações relevantes:
Section | Campo | Descrição |
---|---|---|
Atividade | Name | Que atividade ocorreu. Por exemplo, Emita uma id_token para a aplicação, que conclui o início de sessão do utilizador real. |
Iniciado por (Ator) | ObjectId | O ID de Objeto da aplicação B2C na qual o utilizador está a iniciar sessão. Este identificador não está visível no portal do Azure, mas está acessível através do microsoft Graph API. |
Iniciado por (Ator) | Spn | O ID da Aplicação da aplicação B2C na qual o utilizador está a iniciar sessão. |
Destino(s) | ObjectId | O ID de Objeto do utilizador que está a iniciar sessão. |
Detalhes Adicionais | TenantId | O ID de Inquilino do inquilino Azure AD B2C. |
Detalhes Adicionais | PolicyId | O ID da Política do fluxo de utilizador (política) que está a ser utilizado para iniciar sessão do utilizador. |
Detalhes Adicionais | ApplicationID | O ID da Aplicação da aplicação B2C na qual o utilizador está a iniciar sessão. |
Ver registos de auditoria no portal do Azure
O portal do Azure fornece acesso aos eventos de registo de auditoria no inquilino do Azure AD B2C.
- Inicie sessão no portal do Azure.
- Mude para o diretório que contém a sua Azure AD inquilino B2C e, em seguida, navegue para Azure AD B2C.
- Em Atividades no menu esquerdo, selecione Registos de auditoria.
É apresentada uma lista de eventos de atividade registados nos últimos sete dias.
Estão disponíveis várias opções de filtragem, incluindo:
- Tipo de Recurso de Atividade – filtrar pelos tipos de atividade apresentados na tabela na secção Descrição geral das atividades disponíveis .
- Data – filtre o intervalo de datas das atividades apresentadas.
Se selecionar uma linha na lista, os detalhes da atividade do evento são apresentados.
Para transferir a lista de eventos de atividade num ficheiro de valores separados por vírgulas (CSV), selecione Transferir.
Obter registos de auditoria com a API de relatórios de Microsoft Entra
Os registos de auditoria são publicados no mesmo pipeline que outras atividades para Microsoft Entra ID, para que possam ser acedidos através da API de relatórios de Microsoft Entra. Para obter mais informações, veja Introdução à API de relatórios de Microsoft Entra.
Ativar o acesso à API de relatórios
Para permitir o acesso baseado em scripts ou aplicações à API de relatórios de Microsoft Entra, precisa de uma aplicação registada no inquilino do Azure AD B2C com as seguintes permissões de API. Pode ativar estas permissões num registo de aplicação existente no seu inquilino B2C ou criar uma nova especificamente para utilização com a automatização do registo de auditoria.
- Permissões > de Aplicação do Microsoft Graph > AuditLog > AuditLog.Read.All
Siga os passos no artigo seguinte para registar uma aplicação com as permissões necessárias:
Gerir o Azure AD B2C com o Microsoft Graph
Depois de registar uma aplicação com as permissões adequadas, veja a secção Script do PowerShell mais à frente neste artigo para obter um exemplo de como pode obter eventos de atividade com um script.
Aceder à API
Para transferir Azure AD eventos de registo de auditoria B2C através da API, filtre os registos na B2C
categoria. Para filtrar por categoria, utilize o parâmetro da filter
cadeia de consulta quando chamar o ponto final da API de relatórios de Microsoft Entra.
https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=loggedByService eq 'B2C' and activityDateTime gt 2019-09-10T02:28:17Z
Script do PowerShell
O seguinte script do PowerShell mostra um exemplo de como consultar a API de relatórios de Microsoft Entra. Depois de consultar a API, imprime os eventos registados na saída padrão e, em seguida, escreve a saída JSON num ficheiro.
Pode experimentar este script na Cloud Shell do Azure. Certifique-se de que o atualiza com o ID da aplicação, o segredo do cliente e o nome do seu inquilino 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"
}
Eis a representação JSON do evento de atividade de exemplo mostrado anteriormente no artigo:
{
"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"
}
]
}
Passos seguintes
Pode automatizar outras tarefas de administração, por exemplo, gerir Azure AD contas de utilizador B2C com o Microsoft Graph.