Coletar registros de login do ID do Microsoft Entra (antigo Azure Active Directory)

Compatível com:

Este documento descreve como coletar registros de login do Microsoft Entra ID (antigo Azure Active Directory) configurando um feed do Google Security Operations usando o Microsoft Azure Blob Storage V2.

O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso baseado na nuvem. Os registros de login capturam atividades de autenticação em toda a organização, incluindo logins interativos e não interativos de usuários, logins de entidades de serviço e logins de identidades gerenciadas. Esses registros são essenciais para monitorar padrões de acesso, detectar tentativas de autenticação suspeitas e investigar incidentes de segurança.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Acesso privilegiado ao portal do Azure com permissões para:
    • Criar contas de armazenamento
    • Configurar as configurações de diagnóstico para o Microsoft Entra ID
    • Gerenciar chaves de acesso
  • Função de administrador de segurança ou superior no Microsoft Entra ID (necessário para configurar as configurações de diagnóstico)

Configurar a conta de armazenamento do Azure

Criar conta de armazenamento

  1. No portal do Azure, pesquise Contas de armazenamento.
  2. Clique em Criar.
  3. Informe os seguintes detalhes de configuração:

    Configuração Valor
    Assinatura Selecione sua assinatura do Azure
    Grupo de recursos Selecionar ou criar
    Nome da conta de armazenamento Insira um nome exclusivo (por exemplo, secops-entraid-signin).
    Região Selecione a região (por exemplo, East US).
    Desempenho Padrão (recomendado)
    Redundância GRS (armazenamento com redundância geográfica) ou LRS (armazenamento com redundância local)
  4. Clique em Revisar + criar.

  5. Revise a visão geral da conta e clique em Criar.

  6. Aguarde até que a implantação seja concluída.

Receber credenciais da conta de armazenamento

  1. Acesse a Conta de armazenamento que você acabou de criar.
  2. Na navegação à esquerda, selecione Chaves de acesso em Segurança e rede.
  3. Clique em Mostrar chaves.
  4. Copie e salve o seguinte para uso posterior:
    • Nome da conta de armazenamento: o nome da sua conta de armazenamento (por exemplo, secops-entraid-signin)
    • Chave 1 ou Chave 2: a chave de acesso compartilhado (uma string aleatória de 512 bits na codificação base64).

Receber endpoint do serviço de blob

  1. Na mesma conta de armazenamento, selecione Endpoints na navegação à esquerda.
  2. Copie e salve o URL do endpoint do serviço de blob.
    • Exemplo: https://secops-entraid-signin.blob.core.windows.net/

Configurar as configurações de diagnóstico do Microsoft Entra ID

Para exportar os registros de login do Entra ID para a conta de armazenamento:

  1. No portal do Azure, pesquise Microsoft Entra ID.
  2. No painel de navegação à esquerda, acesse Monitoramento e integridade > Configurações de diagnóstico.
  3. Clique em + Adicionar configuração de diagnóstico.
  4. Informe os seguintes detalhes de configuração:
    • Nome da configuração de diagnóstico: insira um nome descritivo (por exemplo, signin-logs-to-secops).
    • Na seção Registros, selecione as seguintes categorias de registros de acesso:
      • SignInLogs: logins interativos de usuários
      • NonInteractiveUserSignInLogs: logins de usuários não interativos.
      • ServicePrincipalSignInLogs: logins de principais de serviço e aplicativos
      • ManagedIdentitySignInLogs: logins de identidade gerenciada
      • ADFSSignInLogs: atividade de login para aplicativos dos Serviços de Federação do Active Directory (AD FS). Selecione apenas se o AD FS estiver em uso.
    • Na seção Detalhes do destino, marque a caixa de seleção Arquivar em uma conta de armazenamento.
    • Assinatura: selecione a assinatura que contém sua conta de armazenamento.
    • Conta de armazenamento: selecione a conta de armazenamento criada anteriormente (por exemplo, secops-entraid-signin).
  5. Clique em Salvar.

Configurar um feed no Google SecOps para ingerir registros de login do Microsoft Entra ID

É necessário criar um feed separado para cada contêiner de registros de login. A tabela a seguir mostra o mapeamento entre contêineres e categorias de registros:

Nome do contêiner Categoria de registro
insights-logs-signinlogs Registros de login interativos
insights-logs-noninteractiveusersigninlogs Registros de login não interativos
insights-logs-serviceprincipalsigninlogs Registros de login do principal de serviço
insights-logs-managedidentitysigninlogs Registros de login da identidade gerenciada
insights-logs-adfssigninlogs Registros de login do AD FS

Criar feed para registros de login interativo

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Entra ID Interactive Sign-in Logs).
  5. Selecione Microsoft Azure Blob Storage V2 como o Tipo de origem.
  6. Selecione Login do Azure AD como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • URI do Azure: insira o URL do endpoint do serviço de blobs com o caminho do contêiner:
    https://secops-entraid-signin.blob.core.windows.net/insights-logs-signinlogs/
    

    Substitua secops-entraid-signin pelo nome da sua conta de armazenamento do Azure.

    • Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência:
      • Nunca: nunca exclui arquivos após as transferências.
      • Excluir arquivos transferidos: exclui os arquivos após a transferência bem-sucedida.
      • Excluir arquivos transferidos e diretórios vazios: exclui arquivos e diretórios vazios após a transferência bem-sucedida.
    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias. O padrão é 180 dias.
    • No menu suspenso de autenticação (o padrão é Chave de acesso/compartilhada), selecione o método que você quer usar e forneça a credencial correspondente. O esquema de solicitação exato de cada método está documentado na referência da API Feed Management:
      • Chave de acesso/compartilhada: no campo Chave, cole uma chave de acesso da conta de armazenamento (Chave 1 ou Chave 2) capturada anteriormente.
      • Token SAS: no campo Token, cole um token de assinatura de acesso compartilhado (SAS) emitido para o contêiner.
      • Federação de identidade da carga de trabalho do Azure V2: insira o ID do cliente e o ID do locatário do aplicativo do Microsoft Entra. Copie o ID do assunto somente leitura que o feed mostra e configure-o como o assunto de uma credencial federada do Microsoft Entra no aplicativo do Azure. Em seguida, conceda a esse aplicativo a função Leitor de dados de blob de armazenamento na conta de armazenamento.
    • Namespace do recurso: o namespace do recurso
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed
  9. Clique em Próxima.

  10. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Criar feeds para outras categorias de registros de login

Repita as etapas anteriores de criação de feed para cada contêiner de registro de acesso adicional, usando as mesmas configurações, mas com o URI do Azure adequado:

Para registros de acesso não interativos:

  • Nome do feed: Entra ID Non-interactive Sign-in Logs
  • Tipo de registro: Azure AD Sign-In
  • URI do Azure: https://secops-entraid-signin.blob.core.windows.net/insights-logs-noninteractiveusersigninlogs/

Para registros de login de entidade de serviço:

  • Nome do feed: Entra ID Service Principal Sign-in Logs
  • Tipo de registro: Azure AD Sign-In
  • URI do Azure: https://secops-entraid-signin.blob.core.windows.net/insights-logs-serviceprincipalsigninlogs/

Para registros de login de identidade gerenciada:

  • Nome do feed: Entra ID Managed Identity Sign-in Logs
  • Tipo de registro: Azure AD Sign-In
  • URI do Azure: https://secops-entraid-signin.blob.core.windows.net/insights-logs-managedidentitysigninlogs/

Para registros de login do AD FS:

  • Nome do feed: Entra ID AD FS Sign-in Logs
  • Tipo de registro: Azure AD Sign-In
  • URI do Azure: https://secops-entraid-signin.blob.core.windows.net/insights-logs-adfssigninlogs/

Configurar o firewall do Azure Storage (se ativado)

Se a sua conta do Azure Storage usar um firewall, adicione os intervalos de IP do Google SecOps.

  1. No portal do Azure, acesse sua Conta de armazenamento.
  2. Selecione Rede em Segurança e rede.
  3. Em Firewalls e redes virtuais, selecione Ativado nas redes virtuais e endereços IP selecionados.
  4. Na seção Firewall, em Intervalo de endereços, clique em + Adicionar intervalo de IP.
  5. Adicione cada intervalo de IP do Google SecOps na notação CIDR.

    Para acessar os intervalos de IP atuais:

  6. Clique em Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
AuthenticationContextClassReferences_label additional.fields Mesclado
AuthenticationProtocol_label additional.fields Mesclado
ClientCredentialType_label additional.fields Mesclado
TimeGenerated_label additional.fields Mesclado
additional_AuthenticationProtocol additional.fields Mesclado
additional_AuthenticationRequirement additional.fields Mesclado
additional_DurationMs additional.fields Mesclado
additional_ResultSignature additional.fields Mesclado
additional_TokenIssuerType additional.fields Mesclado
additional_resultSignature additional.fields Mesclado
additional_resultType additional.fields Mesclado
additional_tokenIssuerType additional.fields Mesclado
agentSubjectType_label additional.fields Mesclado
agentType_label additional.fields Mesclado
authconclassref_detail_label additional.fields Mesclado
authconclassref_id_label additional.fields Mesclado
authenticationDetail_label additional.fields Mesclado
authenticationRequirement_label additional.fields Mesclado
authentication_Detail_label additional.fields Mesclado
clientCredentialType_fields additional.fields Mesclado
conditionalAccessAudiences_label additional.fields Mesclado
conditionalAccessStatus_fields additional.fields Mesclado
conditionalAccessStatus_label additional.fields Mesclado
crossTenantAccessType_fields additional.fields Mesclado
field_ additional.fields Mesclado
incomingTokenType_fields additional.fields Mesclado
incoming_token_type_label additional.fields Mesclado
originalRequestId_label additional.fields Mesclado
originalTransferMethod_fields additional.fields Mesclado
originalTransferMethod_label additional.fields Mesclado
processingTimeInMilliseconds_label additional.fields Mesclado
prp_networkType_additional_fields additional.fields Mesclado
prp_network_names_additional_fields additional.fields Mesclado
resource_label additional.fields Mesclado
riskDetail_fields additional.fields Mesclado
riskEventTypeV2_label additional.fields Mesclado
riskEventType_label additional.fields Mesclado
riskLevelAggregated_fields additional.fields Mesclado
riskLevelDuringSignIn_fields additional.fields Mesclado
riskState_fields additional.fields Mesclado
risk_event_types_label additional.fields Mesclado
risk_event_types_v2_label additional.fields Mesclado
signInEventTypes_label additional.fields Mesclado
signInTokenProtectionStatus_fields additional.fields Mesclado
sign_In_Token_Protection_Status_fields additional.fields Mesclado
status_additional_details_label additional.fields Mesclado
has_principal extensions.auth.type Mapeado: trueAUTHTYPE_UNSPECIFIED
has_target_user extensions.auth.type Mapeado: trueAUTHTYPE_UNSPECIFIED
Category metadata.description Mapeado diretamente
CreatedDateTime metadata.event_timestamp Analisado como ISO8601
createdDateTime metadata.event_timestamp Analisado como yyyy-MM-ddTHH:mm:ssZ
properties.createdDateTime metadata.event_timestamp Analisado como yyyy-MM-ddTHH:mm:ssZ
when metadata.event_timestamp Analisado como yyyy-MM-dd HH:mm:ss
has_principal metadata.event_type Mapeado: trueUSER_LOGIN, trueSTATUS_UPDATE
has_target_user metadata.event_type Mapeado: trueUSER_LOGIN
TenantId metadata.product_deployment_id Mapeado diretamente
tenantId metadata.product_deployment_id Mapeado diretamente
operationName metadata.product_event_type Mapeado diretamente
id metadata.product_log_id Mapeado diretamente
prop_id metadata.product_log_id Mapeado diretamente
operationVersion metadata.product_version Mapeado diretamente
UserAgent network.http.parsed_user_agent Mapeado diretamente
properties.userAgent network.http.parsed_user_agent Renomeado/mapeado
Status_errorCode network.http.response_code Mapeado diretamente
status.errorCode network.http.response_code Mapeado diretamente
Browser network.http.user_agent Mapeado diretamente
UserAgent network.http.user_agent Mapeado diretamente
properties.userAgent network.http.user_agent Mapeado diretamente
CorrelationId network.session_id Mapeado diretamente
properties.sessionId network.session_id Mapeado diretamente
appDisplayName principal.application Mapeado diretamente
hardware principal.asset.hardware Mesclado
callerIpAddress principal.asset.ip Mesclado
ipAddress principal.asset.ip Mesclado
principal_ip principal.asset.ip Mesclado
callerIpAddress principal.ip Mesclado
ipAddress principal.ip Mesclado
principal_ip principal.ip Mesclado
City principal.location.city Mapeado diretamente
city principal.location.city Mapeado diretamente
city_value principal.location.city Mapeado diretamente
CountryOrRegion principal.location.country_or_region Mapeado diretamente
countryOrRegion principal.location.country_or_region Mapeado diretamente
country_or_region_value principal.location.country_or_region Mapeado diretamente
geoCoordinates_latitude principal.location.region_coordinates.latitude Mapeado diretamente
geo_latitude principal.location.region_coordinates.latitude Mapeado diretamente
geo_latitude_value principal.location.region_coordinates.latitude Mapeado diretamente
geoCoordinates_longitude principal.location.region_coordinates.longitude Mapeado diretamente
geo_longitude principal.location.region_coordinates.longitude Mapeado diretamente
geo_longitude_value principal.location.region_coordinates.longitude Mapeado diretamente
State principal.location.state Mapeado diretamente
state principal.location.state Mapeado diretamente
state_value principal.location.state Mapeado diretamente
OperatingSystem principal.platform Mapeado: WinWINDOWS, MacMAC, LinLINUX
DeviceDetail_operatingSystem principal.platform_version Mapeado diretamente
OperatingSystem principal.platform_version Mapeado diretamente
ServicePrincipalId_label principal.resource.attribute.labels Mesclado
resourceServicePrincipalId_label principal.resource.attribute.labels Mesclado
userPrincipalName principal.user.email_addresses Mesclado
userDisplayName principal.user.user_display_name Mapeado diretamente
userId principal.user.userid Mapeado diretamente
auth_detail_sec security_result Mesclado
auth_sec_res security_result Mesclado
sec_res security_result Mesclado
sr_result security_result Mesclado
OperationName security_result.action Mapeado: Sign-in activityaction
ResultType security_result.action Mapeado: 0action
action security_result.action Mesclado
security_action security_result.action Mesclado
Category security_result.category Mesclado
OperationName security_result.category Mapeado: Sign-in activityCategory
category security_result.category_details Mesclado
AADTenantId_label security_result.detection_fields Mesclado
AppOwnerTenantId_label security_result.detection_fields Mesclado
AutonomousSystemNumber_label security_result.detection_fields Mesclado
CorrelationId_label security_result.detection_fields Mesclado
CrossTenantAccessType_label security_result.detection_fields Mesclado
DeviceDetail_browser_label security_result.detection_fields Mesclado
IsTenantRestricted_label security_result.detection_fields Mesclado
IsThroughGlobalSecureAccess_label security_result.detection_fields Mesclado
TokenIssuerType_label security_result.detection_fields Mesclado
Type_label security_result.detection_fields Mesclado
UniqueTokenIdentifier_label security_result.detection_fields Mesclado
_Internal_WorkspaceResourceId_label security_result.detection_fields Mesclado
_TimeReceived_label security_result.detection_fields Mesclado
alternateSignInName_label security_result.detection_fields Mesclado
appId_label security_result.detection_fields Mesclado
appid_label security_result.detection_fields Mesclado
browser_label security_result.detection_fields Mesclado
clientAppUsed_label security_result.detection_fields Mesclado
conditionalAccessStatus_label security_result.detection_fields Mesclado
correlationId_field security_result.detection_fields Mesclado
cribl_source_label security_result.detection_fields Mesclado
cribl_topic_name_label security_result.detection_fields Mesclado
detail_label security_result.detection_fields Mesclado
deviceId_label security_result.detection_fields Mesclado
deviceName_label security_result.detection_fields Mesclado
displayName_label security_result.detection_fields Mesclado
flaggedForReview_label security_result.detection_fields Mesclado
home_id_label security_result.detection_fields Mesclado
home_tenant_name_label security_result.detection_fields Mesclado
id_label security_result.detection_fields Mesclado
isCompliant_label security_result.detection_fields Mesclado
isInteractive_label security_result.detection_fields Mesclado
isManaged_label security_result.detection_fields Mesclado
item_id_label security_result.detection_fields Mesclado
message security_result.detection_fields Mapeado: cribl_pipecribl_topic_name_label, cribl_pipecribl_source_label
method_label security_result.detection_fields Mesclado
networkNames_label security_result.detection_fields Mesclado
networkType_label security_result.detection_fields Mesclado
network_Names_label security_result.detection_fields Mesclado
network_Type_label security_result.detection_fields Mesclado
network_type_label security_result.detection_fields Mesclado
operationVersion_label security_result.detection_fields Mesclado
properties_resourceDisplayName_label security_result.detection_fields Mesclado
properties_resourceId_label security_result.detection_fields Mesclado
requirement_provider_label security_result.detection_fields Mesclado
resourceOwnerTenantId_label security_result.detection_fields Mesclado
resourceTenantId_label security_result.detection_fields Mesclado
resource_group_field security_result.detection_fields Mesclado
riskDetail_label security_result.detection_fields Mesclado
riskLevelAggregated_label security_result.detection_fields Mesclado
riskLevelDuringSignIn_label security_result.detection_fields Mesclado
riskState_label security_result.detection_fields Mesclado
sessionId_label security_result.detection_fields Mesclado
sessionLifetimePolicies_label security_result.detection_fields Mesclado
siginsess_status_code_label security_result.detection_fields Mesclado
signInIdentifier_label security_result.detection_fields Mesclado
source_system_label security_result.detection_fields Mesclado
step_date_label security_result.detection_fields Mesclado
step_detail_label security_result.detection_fields Mesclado
step_requirement_label security_result.detection_fields Mesclado
tokenIssuerName_label security_result.detection_fields Mesclado
token_protection_status_details_label security_result.detection_fields Mesclado
trustType_label security_result.detection_fields Mesclado
RiskLevelDuringSignIn security_result.priority Mapeado: mediumMEDIUM_PRIORITY
ResultType security_result.rule_id Mapeado diretamente
OperationName security_result.severity Mapeado: Sign-in activityERROR
level security_result.severity Mapeado diretamente
level security_result.severity_details Mapeado diretamente
OperationName security_result.summary Mapeado: Sign-in activitySuccessful login occurred, Sign-in activity → `Falha no login...
ResultType security_result.summary Mapeado: 0Successful login occurred
Status_failureReason security_result.summary Mapeado diretamente
status.failureReason security_result.summary Mapeado diretamente
AppDisplayName target.application Mapeado diretamente
properties.appDisplayName target.application Mapeado diretamente
resourceDisplayName target.application Mapeado diretamente
AppId_label target.resource.attribute.labels Mesclado
identity_label target.resource.attribute.labels Mesclado
resourceIdentity_label target.resource.attribute.labels Mesclado
resourceId target.resource.name Mapeado diretamente
ResourceId target.resource.product_object_id Mapeado diretamente
target_role_name target.user.attribute.roles Mesclado
UserPrincipalName target.user.email_addresses Mapeado: ^.+@.+$UserPrincipalName
properties.userPrincipalName target.user.email_addresses Mesclado
UserId target.user.product_object_id Mapeado diretamente
Identity target.user.user_display_name Mapeado diretamente
properties.userDisplayName target.user.user_display_name Mapeado diretamente
UserPrincipalName target.user.userid Mapeado diretamente
properties.userId target.user.userid Mapeado diretamente
N/A extensions.auth.type Constante: AUTHTYPE_UNSPECIFIED
N/A metadata.event_type Constante: USER_LOGIN
N/A network.http.parsed_user_agent Constante: parseduseragent
N/A principal.platform Constante: WINDOWS
N/A security_result.priority Constante: MEDIUM_PRIORITY
N/A security_result.severity Constante: INFORMATIONAL
N/A security_result.summary Constante: Successful login occurred

Registro de alterações

Ver o registro de alterações deste analisador

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.