Microsoft Azure AD-Kontextprotokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Microsoft Azure Active Directory-Logs (AD) erfassen, indem Sie einen Google Security Operations-Feed einrichten.
Azure Active Directory (AZURE_AD
) heißt jetzt Microsoft Entra ID. Azure AD-Audit-Logs (AZURE_AD_AUDIT
) sind jetzt Microsoft Entra ID-Audit-Logs.
Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.
Ein Erfassungslabel identifiziert den Parser, der Logrohdaten in das strukturierte UDM-Format normalisiert.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Ein Azure-Abo, bei dem Sie sich anmelden können
- Eine globale Administratorrolle oder eine Azure AD-Administratorrolle
- Ein Azure AD-Mandant in Azure
Azure AD konfigurieren
- Melden Sie sich im Azure an.
- Gehen Sie zu Startseite > App-Registrierung, wählen Sie eine registrierte App aus oder registrieren Sie eine App, falls Sie noch keine erstellt haben.
- Klicken Sie zum Registrieren einer Anwendung im Abschnitt App-Registrierung auf Neue Registrierung.
- Geben Sie im Feld Name den Anzeigenamen für Ihre Anwendung ein.
- Wählen Sie im Abschnitt Unterstützte Kontotypen die erforderliche Option aus, um anzugeben, wer die Anwendung verwenden oder auf die API zugreifen kann.
- Klicken Sie auf Registrieren.
- Rufen Sie die Seite Übersicht auf und kopieren Sie die Anwendungs‑ (Client‑)‑ID und die Verzeichnis‑ (Mandanten‑)‑ID, die zum Konfigurieren des Google Security Operations-Feeds erforderlich sind.
- Klicken Sie auf API-Berechtigungen.
- Klicken Sie auf Berechtigung hinzufügen und wählen Sie im neuen Bereich Microsoft Graph aus.
- Klicken Sie auf Anwendungsberechtigungen.
- Wählen Sie die Berechtigungen AuditLog.Read.All, Directory.Read.All und SecurityEvents.Read.All aus. Die Berechtigungen müssen Anwendungsberechtigungen und nicht delegierte Berechtigungen sein.
- Klicken Sie auf Administratoreinwilligung für das Standardverzeichnis erteilen. Anwendungen dürfen APIs aufrufen, wenn ihnen im Rahmen des Einwilligungsverfahrens Berechtigungen von Nutzern oder Administratoren erteilt werden.
- Rufen Sie die Einstellungen > Verwalten auf.
- Klicken Sie auf Zertifikate und Secrets.
- Klicken Sie auf Neuer geheimer Clientschlüssel. Der Clientschlüssel wird im Feld Wert angezeigt.
- Kopieren Sie den Clientschlüsselwert. Der Wert wird nur bei der Erstellung angezeigt und ist für die Azure-App-Registrierung und die Konfiguration des Google Security Operations-Feeds erforderlich.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über die SIEM-Einstellungen > „Feeds“ einrichten
Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
So konfigurieren Sie einen einzelnen Feed:
- Rufen Sie die SIEM-Einstellungen> Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Azure AD-Kontextprotokolle.
- Wählen Sie Drittanbieter-API als Quelltyp aus.
- Wählen Sie Azure AD-Organisationskontext als Logtyp aus.
- Klicken Sie auf Weiter.
- Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
- OAUTH-Client-ID: Geben Sie die Client-ID an, die Sie zuvor abgerufen haben.
- OAUTH-Clientschlüssel: Geben Sie den Clientschlüssel an, den Sie zuvor erhalten haben.
- Mandanten-ID: Geben Sie die Mandanten-ID an, die Sie zuvor abgerufen haben.
- Klicken Sie auf Weiter und dann auf Senden.
Weitere Informationen zu Google Security Operations-Feeds finden Sie in der Dokumentation zu Google Security Operations-Feeds. Informationen zu den Anforderungen für die einzelnen Feedtypen finden Sie unter Feedkonfiguration nach Typ. Wenn beim Erstellen von Feeds Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder an:
- OAUTH-Client-ID: Geben Sie die Client-ID an, die Sie zuvor abgerufen haben.
- OAUTH-Clientschlüssel: Geben Sie den Clientschlüssel an, den Sie zuvor erhalten haben.
- Mandanten-ID: Geben Sie die Mandanten-ID an, die Sie zuvor abgerufen haben.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace: Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Referenz zur Feldzuordnung
Mit diesem Parsercode werden Rohlogs im JSON-Format aus Azure Active Directory in ein einheitliches Datenmodell (Unified Data Model, UDM) umgewandelt. Dabei werden Nutzer- und Managerinformationen wie Attribute, Rollen, Beziehungen und Labels extrahiert, verschiedene Dateninkonsistenzen behoben und die Ausgabe mit standardisierten Feldern angereichert.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
businessPhones | user.phone_numbers | Direkt aus dem Feld businessPhones im Rohlog zugeordnet. Mehrere Telefonnummern werden extrahiert und als separate Einträge zugeordnet. |
Ort | user.personal_address.city | Direkt aus dem Feld city im Rohlog zugeordnet. |
companyName | user.company_name | Direkt aus dem Feld companyName im Rohlog zugeordnet. |
country | user.personal_address.country_or_region | Direkt aus dem Feld country im Rohlog zugeordnet. Wenn country leer ist, wird der Wert aus usageLocation übernommen. |
createdDateTime | user.attribute.creation_time | Wird aus dem Feld createdDateTime im Rohlog mithilfe des RFC 3339-Formats in einen Zeitstempel konvertiert. |
department | user.department | Direkt aus dem Feld department im Rohlog zugeordnet. Mehrere Abteilungen werden extrahiert und als separate Einträge zugeordnet. |
displayName | user.user_display_name | Direkt aus dem Feld displayName im Rohlog zugeordnet. |
employeeId | user.employee_id | Direkt aus dem Feld employeeId im Rohlog zugeordnet. Wenn employeeId leer ist, wird der Wert aus extension_employeeNumber übernommen. |
employeeType | user.attribute.labels.value (key: employeeType) | Direkt aus dem Feld employeeType im Rohlog zugeordnet und als Label mit dem Schlüssel employeeType hinzugefügt. |
extension_employeeNumber | user.employee_id | Wird user.employee_id zugeordnet, wenn employeeId leer ist. |
extension_wfc_AccountType | event.idm.entity.entity.labels.value (Schlüssel: wfc_AccountType) | Direkt aus dem Feld extension_wfc_AccountType im Rohlog zugeordnet und als Label mit dem Schlüssel wfc_AccountType hinzugefügt. |
extension_wfc_AccountingUnitName | event.idm.entity.entity.labels.value (Schlüssel: extension_wfc_AccountingUnitName) | Direkt aus dem Feld extension_wfc_AccountingUnitName im Rohlog zugeordnet und als Label mit dem Schlüssel extension_wfc_AccountingUnitName hinzugefügt. |
extension_wfc_execDescription | event.idm.entity.entity.labels.value (Schlüssel: extension_wfc_execDescription) | Direkt aus dem Feld extension_wfc_execDescription im Rohlog zugeordnet und als Label mit dem Schlüssel extension_wfc_execDescription hinzugefügt. |
extension_wfc_groupDescription | event.idm.entity.entity.labels.value (key: extension_wfc_groupDescription) | Direkt aus dem Feld extension_wfc_groupDescription im Rohlog zugeordnet und als Label mit dem Schlüssel extension_wfc_groupDescription hinzugefügt. |
extension_wfc_orgDescription | event.idm.entity.entity.labels.value (key: extension_wfc_orgDescription) | Direkt aus dem Feld extension_wfc_orgDescription im Rohlog zugeordnet und als Label mit dem Schlüssel extension_wfc_orgDescription hinzugefügt. |
givenName | user.first_name | Direkt aus dem Feld givenName im Rohlog zugeordnet. |
gopher-devices | event.idm.entity.relations | Jedes Gerät im gopher-devices -Array wird einem separaten Relationseintrag zugeordnet. deviceId wird product_object_id zugeordnet, operatingSystem und operatingSystemVersion werden zu platform_version zusammengefasst, model wird direkt zugeordnet und createdDateTime wird in einen Zeitstempel umgewandelt und created_timestamp zugeordnet. Die Beziehung ist auf OWNS und die Richtung auf UNIDIRECTIONAL festgelegt. |
gopher-groups | event.idm.entity.relations | Jede Gruppe im gopher-groups -Array wird einem separaten Relationseintrag zugeordnet. id wird product_object_id zugeordnet und displayName wird group_display_name zugeordnet. Die Beziehung ist auf MEMBER und die Richtung auf UNIDIRECTIONAL festgelegt. |
gopher-manager.businessPhones | empmanager.phone_numbers | Wird empmanager.phone_numbers zugeordnet, wenn manager leer ist. |
gopher-manager.country | empmanager.personal_address.country_or_region | Wird empmanager.personal_address.country_or_region zugeordnet, wenn manager leer ist. Wenn sowohl gopher-manager.country als auch gopher-manager.usageLocation leer sind, bleibt das Feld leer. |
gopher-manager.department | empmanager.department | Wird empmanager.department zugeordnet, wenn manager leer ist. |
gopher-manager.displayName | empmanager.user_display_name | Wird empmanager.user_display_name zugeordnet, wenn manager leer ist. |
gopher-manager.employeeId | empmanager.employee_id | Wird empmanager.employee_id zugeordnet, wenn manager leer und gopher-manager.employeeId nicht leer ist. |
gopher-manager.extension_employeeNumber | empmanager.employee_id | Wird empmanager.employee_id zugeordnet, wenn manager und gopher-manager.employeeId leer sind und gopher-manager.extension_employeeNumber nicht leer ist. |
gopher-manager.givenName | empmanager.first_name | Wird empmanager.first_name zugeordnet, wenn manager leer ist. |
gopher-manager.id | empmanager.product_object_id | Wird empmanager.product_object_id zugeordnet, wenn manager leer ist. |
gopher-manager.jobTitle | empmanager.title | Wird empmanager.title zugeordnet, wenn manager leer ist. |
gopher-manager.mail | empmanager.email_addresses | Wird empmanager.email_addresses zugeordnet, wenn manager leer ist. |
gopher-manager.onPremisesImmutableId | user.attribute.labels.value (key: gopher-manager onPremisesImmutableId) | Als Label mit dem Schlüssel gopher-manager onPremisesImmutableId zugeordnet. |
gopher-manager.onPremisesSamAccountName | empmanager.userid | Wird empmanager.userid zugeordnet, wenn manager leer ist. |
gopher-manager.onPremisesSecurityIdentifier | empmanager.windows_sid | Wird empmanager.windows_sid zugeordnet, wenn manager leer ist. |
gopher-manager.proxyAddresses | empmanager.email_addresses, empmanager.group_identifiers | Wenn manager leer ist, wird jede Adresse im gopher-manager.proxyAddresses -Array entweder empmanager.email_addresses oder empmanager.group_identifiers zugeordnet, je nachdem, ob sie mit „smtp“ oder „SMTP“ beginnt. |
gopher-manager.refreshTokensValidFromDateTime | empmanager.attribute.labels.value (key: refreshTokensValidFromDateTime) | Wird als Label mit dem Schlüssel refreshTokensValidFromDateTime zugeordnet, wenn manager leer ist. |
gopher-manager.streetAddress | empmanager.personal_address.name | Wird empmanager.personal_address.name zugeordnet, wenn manager leer ist. |
gopher-manager.surname | empmanager.last_name | Wird empmanager.last_name zugeordnet, wenn manager leer ist. |
gopher-manager.usageLocation | user.attribute.labels.value (key: manager_src_usageLocation) | Als Label mit dem Schlüssel manager_src_usageLocation zugeordnet. |
gopher-manager.userType | empmanager.attribute.roles.name | Wird empmanager.attribute.roles.name zugeordnet, wenn manager leer ist. |
id | user.product_object_id | Direkt aus dem Feld id im Rohlog zugeordnet. |
Identitäten | user.attribute.labels.value (key: signInType), user.attribute.labels.value (key: userPrincipalName) | signInType wird als Label mit dem Schlüssel signInType zugeordnet. Wenn signInType und userPrincipalName nicht leer sind, werden sie kombiniert und als Label mit dem Schlüssel userPrincipalName zugeordnet. |
jobTitle | user.title | Direkt aus dem Feld jobTitle im Rohlog zugeordnet. |
user.email_addresses | Direkt aus dem Feld mail im Rohlog zugeordnet. Wenn mail mit „svc-“ beginnt, wird user_role.type auf SERVICE_ACCOUNT festgelegt. |
|
mailNickname | user.attribute.labels.value (Schlüssel: mailNickname) | Direkt aus dem Feld mailNickname im Rohlog zugeordnet und als Label mit dem Schlüssel mailNickname hinzugefügt. |
manager.businessPhones | empmanager.phone_numbers | Wird empmanager.phone_numbers zugeordnet, wenn gopher-manager leer ist. |
manager.city | empmanager.personal_address.city | Wird empmanager.personal_address.city zugeordnet, wenn gopher-manager leer ist. |
manager.companyName | empmanager.company_name | Wird empmanager.company_name zugeordnet, wenn gopher-manager leer ist. |
manager.country | empmanager.personal_address.country_or_region | Wird empmanager.personal_address.country_or_region zugeordnet, wenn gopher-manager leer ist. Wenn sowohl manager.country als auch manager.usageLocation leer sind, bleibt das Feld leer. |
manager.department | empmanager.department | Wird empmanager.department zugeordnet, wenn gopher-manager leer ist. |
manager.displayName | empmanager.user_display_name | Wird empmanager.user_display_name zugeordnet, wenn gopher-manager leer ist. |
manager.employeeId | empmanager.employee_id | Wird empmanager.employee_id zugeordnet, wenn gopher-manager leer und manager.employeeId nicht leer ist. |
manager.extension_employeeNumber | empmanager.employee_id | Wird empmanager.employee_id zugeordnet, wenn gopher-manager und manager.employeeId leer sind und manager.extension_employeeNumber nicht leer ist. |
manager.givenName | empmanager.first_name | Wird empmanager.first_name zugeordnet, wenn gopher-manager leer ist. |
manager.id | empmanager.product_object_id | Wird empmanager.product_object_id zugeordnet, wenn gopher-manager leer ist. |
manager.jobTitle | empmanager.title | Wird empmanager.title zugeordnet, wenn gopher-manager leer ist. |
manager.mail | empmanager.email_addresses | Wird empmanager.email_addresses zugeordnet, wenn gopher-manager leer ist. |
manager.onPremisesSamAccountName | empmanager.userid | Wird empmanager.userid zugeordnet, wenn gopher-manager leer ist. |
manager.onPremisesSecurityIdentifier | empmanager.windows_sid | Wird empmanager.windows_sid zugeordnet, wenn gopher-manager leer ist. |
manager.proxyAddresses | empmanager.email_addresses, empmanager.group_identifiers | Wenn gopher-manager leer ist, wird jede Adresse im manager.proxyAddresses -Array entweder empmanager.email_addresses oder empmanager.group_identifiers zugeordnet, je nachdem, ob sie mit „smtp“ oder „SMTP“ beginnt. |
manager.refreshTokensValidFromDateTime | empmanager.attribute.labels.value (key: refreshTokensValidFromDateTime) | Wird als Label mit dem Schlüssel refreshTokensValidFromDateTime zugeordnet, wenn gopher-manager leer ist. |
manager.state | empmanager.personal_address.state | Wird empmanager.personal_address.state zugeordnet, wenn gopher-manager leer ist. |
manager.streetAddress | empmanager.personal_address.name | Wird empmanager.personal_address.name zugeordnet, wenn gopher-manager leer ist. |
manager.surname | empmanager.last_name | Wird empmanager.last_name zugeordnet, wenn gopher-manager leer ist. |
manager.usageLocation | user.attribute.labels.value (key: manager_src_usageLocation), empmanager.personal_address.country_or_region | Als Label mit dem Schlüssel manager_src_usageLocation zugeordnet. Wenn manager.country leer ist, wird der Wert auch empmanager.personal_address.country_or_region zugeordnet. |
manager.userType | empmanager.attribute.roles.name | Wird empmanager.attribute.roles.name zugeordnet, wenn gopher-manager leer ist. |
onPremisesDistinguishedName | user.attribute.labels.value (key: onPremisesDistinguishedName), user.attribute.labels.value (key: onPremisesDistinguishedName-OU data) | Der vollständige Distinguished Name wird als Label mit dem Schlüssel onPremisesDistinguishedName zugeordnet. Der OU-Teil des definierten Namens wird extrahiert und als Label mit dem Schlüssel onPremisesDistinguishedName-OU data zugeordnet. Wenn der OU-Teil „Admin“ enthält, wird user_role.type auf ADMINISTRATOR festgelegt. Wenn es „Service Accounts“ enthält, ist user_role.type auf SERVICE_ACCOUNT festgelegt. |
onPremisesDomainName | user.group_identifiers, user.attribute.labels.value (key: onPremisesDomainName) | Direkt user.group_identifiers zugeordnet und als Label mit dem Schlüssel onPremisesDomainName hinzugefügt. |
onPremisesImmutableId | user.attribute.labels.value (key: onPremisesImmutableId) | Direkt aus dem Feld onPremisesImmutableId im Rohlog zugeordnet und als Label mit dem Schlüssel onPremisesImmutableId hinzugefügt. |
onPremisesSamAccountName | user.userid, user.attribute.labels.value (key: onPremisesSamAccountName) | Wird user.userid zugeordnet, wenn sAMAccountName leer ist. Wird auch als Label mit dem Schlüssel onPremisesSamAccountName hinzugefügt. |
onPremisesSecurityIdentifier | user.windows_sid | Direkt aus dem Feld onPremisesSecurityIdentifier im Rohlog zugeordnet. |
proxyAddresses | user.email_addresses, user.group_identifiers | Jede Adresse im proxyAddresses -Array wird entweder user.email_addresses oder user.group_identifiers zugeordnet, je nachdem, ob sie mit „smtp“ oder „SMTP“ beginnt. Wenn die Adresse mit „smtp“ oder „SMTP“ beginnt, wird das Präfix „smtp:“ oder „SMTP:“ entfernt und die verbleibende E‑Mail-Adresse wird extrahiert und user.email_addresses zugeordnet. |
refreshTokensValidFromDateTime | user.attribute.labels.value (key: refreshTokensValidFromDateTime) | Direkt aus dem Feld refreshTokensValidFromDateTime im Rohlog zugeordnet und als Label mit dem Schlüssel refreshTokensValidFromDateTime hinzugefügt. |
sAMAccountName | user.userid | Direkt aus dem Feld sAMAccountName im Rohlog zugeordnet. |
state | user.personal_address.state | Direkt aus dem Feld state im Rohlog zugeordnet. |
streetAddress | user.personal_address.name | Direkt aus dem Feld streetAddress im Rohlog zugeordnet. |
surname | user.last_name | Direkt aus dem Feld surname im Rohlog zugeordnet. |
usageLocation | user.personal_address.country_or_region | Wenn country leer ist, wird der Wert user.personal_address.country_or_region zugeordnet. |
userPrincipalName | user.email_addresses | Direkt aus dem Feld userPrincipalName im Rohlog zugeordnet. Wenn userPrincipalName mit „svc-“ beginnt, wird user_role.type auf SERVICE_ACCOUNT festgelegt. |
userType | user.attribute.roles.name | Direkt aus dem Feld userType im Rohlog zugeordnet und user.attribute.roles.name hinzugefügt. |
Parser-Logik | UDM-Zuordnung | Logik |
– | event.idm.entity.metadata.vendor_name | Legen Sie diesen Wert auf „Microsoft“ fest. |
– | event.idm.entity.metadata.product_name | Auf „Azure Active Directory“ festgelegt. |
– | event.idm.entity.metadata.entity_type | Legen Sie diesen Wert auf „USER“ fest. |
– | event.idm.entity.metadata.collected_timestamp | Auf das Feld create_time aus dem Rohlog gesetzt. |
accountEnabled | user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) | Wenn accountEnabled „true“ ist, wird user.user_authentication_status auf „ACTIVE“ gesetzt und ein Label mit dem Schlüssel accountEnabled und dem Wert „true“ wird hinzugefügt. Andernfalls wird ein Label mit dem Schlüssel accountEnabled und dem Wert „false“ hinzugefügt. |
empmanager-src.accountEnabled | user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) | Wenn manager leer und empmanager-src.accountEnabled „true“ ist, wird user.user_authentication_status auf „ACTIVE“ gesetzt und ein Label mit dem Schlüssel accountEnabled und dem Wert „true“ wird hinzugefügt. Andernfalls wird ein Label mit dem Schlüssel accountEnabled und dem Wert „false“ hinzugefügt. |
onPremisesDistinguishedName | user_role.type | Wenn der OU-Teil des definierten Namens „Admin“ enthält, wird user_role.type auf ADMINISTRATOR festgelegt. Wenn es „Service Accounts“ enthält, ist user_role.type auf SERVICE_ACCOUNT festgelegt. |
userPrincipalName | user_role.type | Wenn userPrincipalName mit „svc-“ beginnt, wird user_role.type auf SERVICE_ACCOUNT festgelegt. |
empmanager-src.onPremisesDistinguishedName | manager_role.type | Wenn gopher-manager leer ist und der OU-Teil des Distinguished Name des Administrators „Users“ enthält, wird manager_role.type auf ADMINISTRATOR festgelegt. Wenn es „Service Accounts“ enthält, ist manager_role.type auf SERVICE_ACCOUNT festgelegt. |
empmanager-src.userPrincipalName | manager_role.type | Wenn gopher-manager leer ist und empmanager-src.userPrincipalName mit „svc-“ beginnt, wird manager_role.type auf SERVICE_ACCOUNT festgelegt. |
user_role.type | Wenn mail mit „svc-“ beginnt, wird user_role.type auf SERVICE_ACCOUNT festgelegt. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten