Microsoft Azure AD コンテキスト ログを収集する
このドキュメントでは、Google Security Operations フィードを設定して Microsoft Azure Active Directory(AD)のログを収集する方法について説明します。
Azure Active Directory(AZURE_AD
)は Microsoft Entra ID に名称が変更されました。Azure AD 監査ログ(AZURE_AD_AUDIT
)が Microsoft Entra ID 監査ログになりました。
詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。
始める前に
このページのタスクを完了するには、次のものが必要です。
- ログインできる Azure サブスクリプション。
- グローバル管理者または Azure AD 管理者のロール。
- Azure の Azure AD(テナント)。
Azure AD を構成する
- Azure ポータルにログインします。
- [ホーム] > [アプリの登録] に移動し、登録済みのアプリを選択するか、まだアプリを作成していない場合はアプリを登録します。
- アプリケーションを登録するには、[アプリの登録] セクションで [新しい登録] をクリックします。
- [名前] フィールドに、アプリケーションの表示名を入力します。
- [サポートされているアカウントの種類] セクションで、必要なオプションを選択して、アプリケーションを使用できるユーザーまたは API にアクセスできるユーザーを指定します。
- [Register] をクリックします。
- [概要] ページに移動し、Google Security Operations フィードの構成に必要なアプリケーション(クライアント)ID とディレクトリ(テナント)ID をコピーします。
- [API 権限] をクリックします。
- [アクセス許可を追加] をクリックし、新しいペインで [Microsoft Graph] を選択します。
- [アプリケーションのアクセス許可] をクリックします。
- AuditLog.Read.All、Directory.Read.All、SecurityEvents.Read.All 権限を選択します。権限が委任された権限ではなく、アプリの権限であることを確認します。
- [デフォルト ディレクトリへの管理者の同意を付与] をクリックします。同意プロセスの一環としてユーザーまたは管理者から権限が付与された場合、アプリは API を呼び出す権限を付与されます。
- [設定] > [管理] に移動します。
- [証明書とシークレット] をクリックします。
- [新しいクライアント シークレット] をクリックします。[値] フィールドにクライアント シークレットが表示されます。
- クライアント シークレットの値をコピーします。この値は作成時にのみ表示され、Azure アプリの登録と Google Security Operations フィードの構成に必要です。
Azure AD コンテキスト ログを取り込むように Google Security Operations でフィードを構成する
- [SIEM 設定] > [フィード] を選択します。
- [新しく追加] をクリックします。
- [フィード名] に固有の名前を入力します。
- [ソースタイプ] として [サードパーティ API] を選択します。
- [ログタイプ] で [Azure AD 組織コンテキスト] を選択します。
- [次へ] をクリックします。
- 次の必須入力パラメータを構成します。
- OAUTH クライアント ID: 前の手順で取得したクライアント ID を指定します。
- OAUTH クライアント シークレット: 前の手順で取得したクライアント シークレットを指定します。
- テナント ID: 前の手順で取得したテナント ID を指定します。
- [次へ] をクリックし、[送信] をクリックします。
Google Security Operations フィードの詳細については、Google Security Operations フィードのドキュメントをご覧ください。各フィードタイプの要件については、タイプ別のフィード構成をご覧ください。 フィードの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。
フィールド マッピング リファレンス
このパーサーコードは、Azure Active Directory の未加工の JSON 形式のログを統合データモデル(UDM)に変換します。属性、ロール、関係、ラベルなどのユーザーとマネージャーの情報を抽出しながら、さまざまなデータの不整合を処理し、標準化されたフィールドで出力を拡充します。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
businessPhones | user.phone_numbers | 未加工ログの businessPhones フィールドから直接マッピングされます。複数の電話番号が抽出され、個別のエントリとしてマッピングされます。 |
city | user.personal_address.city | 未加工ログの city フィールドから直接マッピングされます。 |
companyName | user.company_name | 未加工ログの companyName フィールドから直接マッピングされます。 |
country | user.personal_address.country_or_region | 未加工ログの country フィールドから直接マッピングされます。country が空の場合、値は usageLocation から取得されます。 |
createdDateTime | user.attribute.creation_time | RFC3339 形式を使用して、元のログの createdDateTime フィールドからタイムスタンプに変換されます。 |
department | user.department | 未加工ログの department フィールドから直接マッピングされます。複数の部署が抽出され、個別のエントリとしてマッピングされます。 |
displayName | user.user_display_name | 未加工ログの displayName フィールドから直接マッピングされます。 |
employeeId | user.employee_id | 未加工ログの employeeId フィールドから直接マッピングされます。employeeId が空の場合、値は extension_employeeNumber から取得されます。 |
employeeType | user.attribute.labels.value(キー: employeeType) | 元のログの employeeType フィールドから直接マッピングされ、キー employeeType を持つラベルとして追加されます。 |
extension_employeeNumber | user.employee_id | employeeId が空の場合、user.employee_id にマッピングされます。 |
extension_wfc_AccountType | event.idm.entity.entity.labels.value(キー: wfc_AccountType) | 元のログの extension_wfc_AccountType フィールドから直接マッピングされ、キー wfc_AccountType を持つラベルとして追加されます。 |
extension_wfc_AccountingUnitName | event.idm.entity.entity.labels.value(キー: extension_wfc_AccountingUnitName) | 元のログの extension_wfc_AccountingUnitName フィールドから直接マッピングされ、キー extension_wfc_AccountingUnitName を持つラベルとして追加されます。 |
extension_wfc_execDescription | event.idm.entity.entity.labels.value(キー: extension_wfc_execDescription) | 元のログの extension_wfc_execDescription フィールドから直接マッピングされ、キー extension_wfc_execDescription を持つラベルとして追加されます。 |
extension_wfc_groupDescription | event.idm.entity.entity.labels.value(キー: extension_wfc_groupDescription) | 元のログの extension_wfc_groupDescription フィールドから直接マッピングされ、キー extension_wfc_groupDescription を持つラベルとして追加されます。 |
extension_wfc_orgDescription | event.idm.entity.entity.labels.value(キー: extension_wfc_orgDescription) | 元のログの extension_wfc_orgDescription フィールドから直接マッピングされ、キー extension_wfc_orgDescription を持つラベルとして追加されます。 |
givenName | user.first_name | 未加工ログの givenName フィールドから直接マッピングされます。 |
gopher-devices | event.idm.entity.relations | gopher-devices 配列内の各デバイスは、個別の関係エントリにマッピングされます。deviceId は product_object_id にマッピングされ、operatingSystem と operatingSystemVersion が結合されて platform_version が形成され、model は直接マッピングされ、createdDateTime はタイムスタンプに変換されて created_timestamp にマッピングされます。関係は OWNS に設定され、方向は UNIDIRECTIONAL に設定されます。 |
gopher-groups | event.idm.entity.relations | gopher-groups 配列内の各グループは、個別の関係エントリにマッピングされます。id は product_object_id にマッピングされ、displayName は group_display_name にマッピングされます。関係は MEMBER に設定され、方向は UNIDIRECTIONAL に設定されます。 |
gopher-manager.businessPhones | empmanager.phone_numbers | manager が空の場合、empmanager.phone_numbers にマッピングされます。 |
gopher-manager.country | empmanager.personal_address.country_or_region | manager が空の場合、empmanager.personal_address.country_or_region にマッピングされます。gopher-manager.country と gopher-manager.usageLocation の両方が空の場合、フィールドは空のままになります。 |
gopher-manager.department | empmanager.department | manager が空の場合、empmanager.department にマッピングされます。 |
gopher-manager.displayName | empmanager.user_display_name | manager が空の場合、empmanager.user_display_name にマッピングされます。 |
gopher-manager.employeeId | empmanager.employee_id | manager が空で gopher-manager.employeeId が空でない場合、empmanager.employee_id にマッピングされます。 |
gopher-manager.extension_employeeNumber | empmanager.employee_id | manager と gopher-manager.employeeId が空で、gopher-manager.extension_employeeNumber が空でない場合、empmanager.employee_id にマッピングされます。 |
gopher-manager.givenName | empmanager.first_name | manager が空の場合、empmanager.first_name にマッピングされます。 |
gopher-manager.id | empmanager.product_object_id | manager が空の場合、empmanager.product_object_id にマッピングされます。 |
gopher-manager.jobTitle | empmanager.title | manager が空の場合、empmanager.title にマッピングされます。 |
gopher-manager.mail | empmanager.email_addresses | manager が空の場合、empmanager.email_addresses にマッピングされます。 |
gopher-manager.onPremisesImmutableId | user.attribute.labels.value(キー: gopher-manager onPremisesImmutableId) | キー gopher-manager onPremisesImmutableId を持つラベルとしてマッピングされます。 |
gopher-manager.onPremisesSamAccountName | empmanager.userid | manager が空の場合、empmanager.userid にマッピングされます。 |
gopher-manager.onPremisesSecurityIdentifier | empmanager.windows_sid | manager が空の場合、empmanager.windows_sid にマッピングされます。 |
gopher-manager.proxyAddresses | empmanager.email_addresses、empmanager.group_identifiers | manager が空の場合、gopher-manager.proxyAddresses 配列内の各アドレスは、先頭が「smtp」か「SMTP」かに基づいて、empmanager.email_addresses または empmanager.group_identifiers のいずれかにマッピングされます。 |
gopher-manager.refreshTokensValidFromDateTime | empmanager.attribute.labels.value(キー: refreshTokensValidFromDateTime) | manager が空の場合、キー refreshTokensValidFromDateTime を持つラベルとしてマッピングされます。 |
gopher-manager.streetAddress | empmanager.personal_address.name | manager が空の場合、empmanager.personal_address.name にマッピングされます。 |
gopher-manager.surname | empmanager.last_name | manager が空の場合、empmanager.last_name にマッピングされます。 |
gopher-manager.usageLocation | user.attribute.labels.value(キー: manager_src_usageLocation) | キー manager_src_usageLocation を持つラベルとしてマッピングされます。 |
gopher-manager.userType | empmanager.attribute.roles.name | manager が空の場合、empmanager.attribute.roles.name にマッピングされます。 |
id | user.product_object_id | 未加工ログの id フィールドから直接マッピングされます。 |
identities | user.attribute.labels.value(キー: signInType)、user.attribute.labels.value(キー: userPrincipalName) | signInType は、キー signInType を持つラベルとしてマッピングされます。signInType と userPrincipalName が空でない場合、それらは結合され、キー userPrincipalName を持つラベルとしてマッピングされます。 |
jobTitle | user.title | 未加工ログの jobTitle フィールドから直接マッピングされます。 |
user.email_addresses | 未加工ログの mail フィールドから直接マッピングされます。mail が「svc-」で始まる場合、user_role.type は SERVICE_ACCOUNT に設定されます。 |
|
mailNickname | user.attribute.labels.value(キー: mailNickname) | 元のログの mailNickname フィールドから直接マッピングされ、キー mailNickname を持つラベルとして追加されます。 |
manager.businessPhones | empmanager.phone_numbers | gopher-manager が空の場合、empmanager.phone_numbers にマッピングされます。 |
manager.city | empmanager.personal_address.city | gopher-manager が空の場合、empmanager.personal_address.city にマッピングされます。 |
manager.companyName | empmanager.company_name | gopher-manager が空の場合、empmanager.company_name にマッピングされます。 |
manager.country | empmanager.personal_address.country_or_region | gopher-manager が空の場合、empmanager.personal_address.country_or_region にマッピングされます。manager.country と manager.usageLocation の両方が空の場合、フィールドは空のままになります。 |
manager.department | empmanager.department | gopher-manager が空の場合、empmanager.department にマッピングされます。 |
manager.displayName | empmanager.user_display_name | gopher-manager が空の場合、empmanager.user_display_name にマッピングされます。 |
manager.employeeId | empmanager.employee_id | gopher-manager が空で manager.employeeId が空でない場合、empmanager.employee_id にマッピングされます。 |
manager.extension_employeeNumber | empmanager.employee_id | gopher-manager と manager.employeeId が空で、manager.extension_employeeNumber が空でない場合、empmanager.employee_id にマッピングされます。 |
manager.givenName | empmanager.first_name | gopher-manager が空の場合、empmanager.first_name にマッピングされます。 |
manager.id | empmanager.product_object_id | gopher-manager が空の場合、empmanager.product_object_id にマッピングされます。 |
manager.jobTitle | empmanager.title | gopher-manager が空の場合、empmanager.title にマッピングされます。 |
manager.mail | empmanager.email_addresses | gopher-manager が空の場合、empmanager.email_addresses にマッピングされます。 |
manager.onPremisesSamAccountName | empmanager.userid | gopher-manager が空の場合、empmanager.userid にマッピングされます。 |
manager.onPremisesSecurityIdentifier | empmanager.windows_sid | gopher-manager が空の場合、empmanager.windows_sid にマッピングされます。 |
manager.proxyAddresses | empmanager.email_addresses、empmanager.group_identifiers | gopher-manager が空の場合、manager.proxyAddresses 配列内の各アドレスは、先頭が「smtp」か「SMTP」かに基づいて、empmanager.email_addresses または empmanager.group_identifiers にマッピングされます。 |
manager.refreshTokensValidFromDateTime | empmanager.attribute.labels.value(キー: refreshTokensValidFromDateTime) | gopher-manager が空の場合、キー refreshTokensValidFromDateTime を持つラベルとしてマッピングされます。 |
manager.state | empmanager.personal_address.state | gopher-manager が空の場合、empmanager.personal_address.state にマッピングされます。 |
manager.streetAddress | empmanager.personal_address.name | gopher-manager が空の場合、empmanager.personal_address.name にマッピングされます。 |
manager.surname | empmanager.last_name | gopher-manager が空の場合、empmanager.last_name にマッピングされます。 |
manager.usageLocation | user.attribute.labels.value(キー: manager_src_usageLocation)、empmanager.personal_address.country_or_region | キー manager_src_usageLocation を持つラベルとしてマッピングされます。manager.country が空の場合、値は empmanager.personal_address.country_or_region にもマッピングされます。 |
manager.userType | empmanager.attribute.roles.name | gopher-manager が空の場合、empmanager.attribute.roles.name にマッピングされます。 |
onPremisesDistinguishedName | user.attribute.labels.value(キー: onPremisesDistinguishedName)、user.attribute.labels.value(キー: onPremisesDistinguishedName-OU データ) | 完全な識別名は、キー onPremisesDistinguishedName を持つラベルとしてマッピングされます。識別名の OU 部分が抽出され、キー onPremisesDistinguishedName-OU data を持つラベルとしてマッピングされます。OU の部分に「Admin」が含まれている場合、user_role.type は ADMINISTRATOR に設定されます。「Service Accounts」が含まれている場合、user_role.type は SERVICE_ACCOUNT に設定されます。 |
onPremisesDomainName | user.group_identifiers、user.attribute.labels.value(キー: onPremisesDomainName) | user.group_identifiers に直接マッピングされ、キー onPremisesDomainName を持つラベルとして追加されます。 |
onPremisesImmutableId | user.attribute.labels.value(キー: onPremisesImmutableId) | 元のログの onPremisesImmutableId フィールドから直接マッピングされ、キー onPremisesImmutableId を持つラベルとして追加されます。 |
onPremisesSamAccountName | user.userid、user.attribute.labels.value(キー: onPremisesSamAccountName) | sAMAccountName が空の場合、user.userid にマッピングされます。キー onPremisesSamAccountName を持つラベルとして追加されます。 |
onPremisesSecurityIdentifier | user.windows_sid | 未加工ログの onPremisesSecurityIdentifier フィールドから直接マッピングされます。 |
proxyAddresses | user.email_addresses、user.group_identifiers | proxyAddresses 配列内の各アドレスは、先頭が「smtp」か「SMTP」かに基づいて、user.email_addresses または user.group_identifiers にマッピングされます。アドレスが「smtp」または「SMTP」で始まる場合は、「smtp:」または「SMTP:」接頭辞が削除され、残りのメールアドレスが抽出されて user.email_addresses にマッピングされます。 |
refreshTokensValidFromDateTime | user.attribute.labels.value(キー: refreshTokensValidFromDateTime) | 元のログの refreshTokensValidFromDateTime フィールドから直接マッピングされ、キー refreshTokensValidFromDateTime を持つラベルとして追加されます。 |
sAMAccountName | user.userid | 未加工ログの sAMAccountName フィールドから直接マッピングされます。 |
state | user.personal_address.state | 未加工ログの state フィールドから直接マッピングされます。 |
streetAddress | user.personal_address.name | 未加工ログの streetAddress フィールドから直接マッピングされます。 |
surname | user.last_name | 未加工ログの surname フィールドから直接マッピングされます。 |
usageLocation | user.personal_address.country_or_region | country が空の場合、値は user.personal_address.country_or_region にマッピングされます。 |
userPrincipalName | user.email_addresses | 未加工ログの userPrincipalName フィールドから直接マッピングされます。userPrincipalName が「svc-」で始まる場合、user_role.type は SERVICE_ACCOUNT に設定されます。 |
userType | user.attribute.roles.name | 未加工ログの userType フィールドから直接マッピングされ、user.attribute.roles.name に追加されました。 |
パーサー ロジック | UDM マッピング | ロジック |
なし | event.idm.entity.metadata.vendor_name | 「Microsoft」に設定します。 |
なし | event.idm.entity.metadata.product_name | [Azure Active Directory] に設定します。 |
なし | event.idm.entity.metadata.entity_type | 「USER」に設定します。 |
なし | event.idm.entity.metadata.collected_timestamp | 未加工ログの create_time フィールドに設定します。 |
accountEnabled | user.user_authentication_status、user.attribute.labels.value(key: accountEnabled) | accountEnabled が true の場合、user.user_authentication_status は「ACTIVE」に設定され、キーが accountEnabled で値が「true」のラベルが追加されます。それ以外の場合は、キーが accountEnabled で値が「false」のラベルが追加されます。 |
empmanager-src.accountEnabled | user.user_authentication_status、user.attribute.labels.value(key: accountEnabled) | manager が空で、empmanager-src.accountEnabled が「true」の場合、user.user_authentication_status は「ACTIVE」に設定され、キーが accountEnabled 、値が「true」のラベルが追加されます。それ以外の場合は、キーが accountEnabled で値が「false」のラベルが追加されます。 |
onPremisesDistinguishedName | user_role.type | 識別名の OU 部分に「Admin」が含まれている場合、user_role.type は ADMINISTRATOR に設定されます。「Service Accounts」が含まれている場合、user_role.type は SERVICE_ACCOUNT に設定されます。 |
userPrincipalName | user_role.type | userPrincipalName が「svc-」で始まる場合、user_role.type は SERVICE_ACCOUNT に設定されます。 |
empmanager-src.onPremisesDistinguishedName | manager_role.type | gopher-manager が空で、マネージャーの識別名の OU 部分に「Users」が含まれている場合、manager_role.type は ADMINISTRATOR に設定されます。「Service Accounts」が含まれている場合、manager_role.type は SERVICE_ACCOUNT に設定されます。 |
empmanager-src.userPrincipalName | manager_role.type | gopher-manager が空で、empmanager-src.userPrincipalName が「svc-」で始まる場合、manager_role.type は SERVICE_ACCOUNT に設定されます。 |
user_role.type | mail が「svc-」で始まる場合、user_role.type は SERVICE_ACCOUNT に設定されます。 |
変更点
2024-04-29
- 「officeLocation」を「entity.location.name」にマッピングしました。
- 「extension_wfc_groupDescription」、「extension_wfc_execDescription」、「extension_wfc_orgDescription」、「extension_wfc_AccountingUnitName」、「extension_wfc_AccountType」を「entity.labels」にマッピングしました。
2024-05-02
バグの修正:
- 「accountEnabled」フィールドのチェックを追加し、「entity.user.attribute.labels.value」フィールドに正しい値を解析するようにしました。
2024-03-14
- 「onPremisesImmutableId」を「entity.user.attribute.labels」にマッピングしました。
- 「gopher-manager.onPremisesImmutableId」を「entity.user.attribute.labels」にマッピングしました。
2024-01-12
バグの修正:
- 「empmanager-src.usageLocation」マッピングを「entity.user.personal_address.country_or_region」から「entity.user.attribute.labels」に変更しました。
2023-11-24
強化
- 「employeeType」属性を「entity.user.attribute.labels」にマッピングしました。
- タグ「TAG_MALFORMED_MESSAGE」が付いた不正な形式の JSON ログを破棄しました。
2023-10-25
バグの修正
- null チェックと不在値に対する「on_error」チェックを追加しました。
2023-09-25
強化
- 「group.displayName」を「relation_entity.entity.group.group_display_name」にマッピングするために、置換ではなく名前変更関数を追加しました。
- 「country」を「user.personal_address.country_or_region」にマッピングしました。「country」が存在しない場合に、「usageLocation」を「user.personal_address.country_or_region」にマッピングしました。
2023-02-09
強化
- フィールド「onPremisesDistinguishedName」のデータをマッピングする前に null チェックを追加しました。
- フィールド「proxyAddresses」からメールアドレスを抽出する gsub を追加しました。
2023-01-23
- 「onPremisesExtensionAttributes.extensionAttribute4」が「Employee」の場合に、「onPremisesExtensionAttributes.extensionAttribute4」を「entity.entity.user.attribute.labels」にマッピングしました。
- 「onPremisesDistinguishedName」の gsub を追加して、余分なバックスラッシュを削除しました。
2022-12-15
バグの修正:
- 「mailNickname」を「entity.user.attribute.labels」にマッピングしました。
- 「empmanager-src.usageLocation」が null の場合、「country_n_code」のみを「user.manager.personal_address.country_or_region」にマッピングしました。
2022-09-19
- バグの修正:
- 「entity.user.attribute.roles」を「ADMINISTRATOR」にマッピングしました。OU には「Admin」が含まれています。
2022-08-11
- 「accountEnabled」を「user.attribute.labels」にマッピングしました
2022-05-16
- 次のフィールドのマッピングを追加しました。
- 「createdDateTime」を「entity.user.attribute.creation_time」にマッピング
- 「accountEnabled」を「entity.user.user_authentication_status」にマッピング
2022-05-09
- 機能強化 - ログ内での出現に応じて、extension_GUID_sbuxXXXXXXX で始まるフィールドを user.attribute.labels または manager.attribute.labels にマッピングしました。
2022-03-24
- 機能強化 - いくつかの欠落しているフィールドを追加
- onPremisesSamAccountName、onPremisesDomainName、onPremisesDistinguishedName を entity.user.attribute.labels にマッピングしました。
- signInType では、userPrincipalName を entity.user.attribute.labels にマッピングしました。