将 Oracle Data Safe 和 OCI Logging Analytics 与 OCI IAM 和 Microsoft Entra ID 集成
简介
在混合云和多云环境中保护 Oracle 数据库需要全面了解用户活动,尤其是在通过 Microsoft Azure Entra ID 和 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 外部管理身份验证时。本教程概述了通过集中式身份提供商提供的丰富 OCI IAM 元数据统一 Oracle Data Safe 审计日志的关键集成。由此形成了全面的用户足迹,为所有数据库交互(无论身份验证源如何)提供无与伦比的端到端可跟踪性,从而增强安全性并简化访问管理。
为什么我们需要这个?
传统数据库审计日志通常缺少将操作追溯到特定云用户所需的关键身份上下文,尤其是在通过外部身份提供者进行身份验证时。此集成直接解决了这一差距。通过将 Oracle Data Safe 和 OCI Logging Analytics 与来自 Microsoft Azure Entra ID 和 OCI IAM 的 OCI IAM 元数据相关联,企业可以提高审计透明度,改善混合系统中的用户可跟踪性,并集中监视访问活动。这种统一、识别身份的日志记录对于加强安全态势、简化审计调查以及在现代企业环境中满足严格的合规性要求至关重要。
目标受众
- OCI IAM 专业人员、数据库管理员和安全分析师和审计人员。
目标
- 将 Oracle Data Safe 审计日志与 OCI IAM 和 Microsoft Entra ID 元数据集成,然后在 OCI Logging Analytics 中可视化此扩充数据。此流程最终增强了审计透明度,并实现了跨云和数据库环境的详细端到端用户可跟踪性。
Prerequisites
-
OCI 租户: OCI Logging Analytics、Oracle Data Safe、OCI Compute 和 OCI IAM 服务的访问和权限。
-
Microsoft Entra ID Tenant:管理访问权限。
-
OCI IAM 访问:必要的配置权限。
-
所需工具: OCI CLI、Azure CLI、
jq、csvkit、pandas和 LibreOffice(或类似工具)。 -
日志分析设置:确保已启用 OCI 日志分析,并且已安装并配置管理代理。有关详细信息,请参见以下主题:
-
OCI 计算实例:启用了管理代理插件。
任务 1:为所有数据库中的外部验证用户创建定制 Oracle Data Safe 审计报表
-
登录 OCI 控制台,导航到 Oracle 数据库、数据安全–活动审计,然后单击相关资源下的审计报告–所有活动。

-
单击管理列并选择所需的列。

-
在创建定制报表中,输入显示名称、说明和区间详细信息。

-
在管理报表计划中,从计划频率下拉列表中,选择每日并单击保存计划。

任务 2:设置用于数据收集和关联的 OCI 计算实例
在此任务中,我们将设置您的 OCI 计算实例以从 Microsoft Entra ID 和 OCI IAM 检索用户身份详细信息,并处理 Oracle Data Safe 审计报告。最终目标是将审计日志中的外部用户 ID 与扩充的身份元数据相关联,从而提供完整的用户范围。
注:请从此处下载以下脚本:
scripts。
-
提取 Microsoft Entra ID 用户。
运行以下命令以使用 Microsoft Graph API (
fetch_azure_ad_users.sh) 从 Microsoft Entra ID 检索用户信息。./fetch_azure_ad_users.sh输出:
[oracle@linux-bastion:~]$ ./fetch_azure_ad_users.sh Fetching Access Token... Calling Graph API for users list... Parsing users and converting to CSV... Users list saved to: azure_ad_users.csvhead -3 azure_ad_users.csv输出:
[oracle@linux-bastion:~]$ head -3 azure_ad_users.csv "id","displayName","userPrincipalName","mail" "b41b0688-c07xxxxxxx3-e9b0db0c1107","Alex Kovuru","akovuruxxxxxxjtripaigmail.onmicrosoft.com","alex.xxxuru@gmail.com" "7eb35b90-dc0xxxxxxxxxx-bc0b-48789368e9cf","Anuj Tripathi","anujtxxxxxai_gmail.com#EXT#@anujtripaigmaixxmicrosoft.com","anujtrxxx@gmail.com" -
提取 OCI IAM 用户。
运行以下命令以使用 OCI CLI (
oci_user_list_to_csv.sh) 从 OCI IAM 获取用户详细信息。./oci_user_list_to_csv.sh head -3 oci_iam_users.csv输出:
[oracle@linux-bastion:~]$ ./oci_user_list_to_csv.sh CSV file generated: oci_iam_users.csv [oracle@linux-bastion:~]$ head -3 oci_iam_users.csv id,name,email "ocid1.user.oc1..aaaaaaaaqv3tai2mxxxxxxxxxxepkk5hrfinedvj67ieb7phkirwxfeupv3cbq","alexk",alex.kovuxxx@oracle.com "ocid1.user.oc1..aaaaaaaaoq7ypwb5xxxxxxxxx2l5i6yjlnsedvkcni3dxdjdkkw5lyf73lma","ag-admin","anujtripaxxxx2@gmail.com" [oracle@linux-bastion:~]$ -
合并用户数据。
将从两个源提取的用户数据合并到一个标准化 CSV 文件 (
merge_users_csv.sh)。./merge_users_csv.sh head -3 merged_users.csv输出:
[oracle@linux-bastion:~]$ ./merge_users_csv.sh Merged CSV created: merged_users.csv [oracle@linux-bastion:~]$ head -3 merged_users.csv id,displayName,userPrincipalName,mail,source "7eb35b90-dc0d-4135-bc0b-48789368e9cf","Anuj Tripathi","anujtrip.ai_xxx.com#EXT#@anujtripaigmail.onmicrosoft.com","anujtrixxxx@gmail.com",AzureAD "ocid1.user.oc1..aaaaaaaaqv3tai2miu6vtgxxxxxxxxxxxfinedvj67ieb7phkirwxfeupv3cbq","alexk",null,"alex.kovxxxxu@oracle.com",OCI [oracle@linux-bastion:~]$ -
处理数据安全审计报表。
下载、转换、清理和标准化 Oracle Data Safe (
process_data_safe_report.sh) 的最新审计报告。./process_data_safe_report.sh head -3 cleaned_audit_records_final.csv输出:
[oracle@linux-bastion:~]$ ./process_data_safe_report.sh Downloading report from OCI Data Safe... Converting XLS to CSV... convert /home/oracle/DS_AZ_OCI_Custom_External_User_Report_202507240745.xls -> /home/oracle/DS_AZ_OCI_Custom_External_User_Report_202507240745.csv using filter : Text - txt - csv (StarCalc) Cleaning the CSV file... Extracting specific columns... Post-processing the final CSV... Final post-processing complete. [oracle@linux-bastion:~]$ head -3 cleaned_audit_records_final.csv Target,DB user,OS user,Client host,Client ip,Event,Operation status,Operation time,External user DBS23AZPDB,ALLUSERS,oracle,linux-bastion,129.146.107.120,LOGOFF BY CLEANUP,SUCCESS,2025-07-10T21:07:37Z,b41b0688-c07e-416d-bf13-xxxxxxxxxc1107 DBS23AZPDB,ALLUSERS,oracle,linux-bastion,129.146.107.120,CREATE TABLE,SUCCESS,2025-07-10T19:59:07Z,b41b0688-c07e-416d-bf13-xxxxxxxx0c1107 [oracle@linux-bastion:~]$ -
关联数据
通过将外部用户 ID 与合并的 OCI IAM 用户数据 (
DataSafe_External_Users_Audit_Dashboard.sh) 相关联,扩充 Oracle Data Safe 审计日志。./DataSafe_External_Users_Audit_Dashboard.sh head -3 DataSafe_External_Users_Audit_Dashboard.csv输出:
[oracle@linux-bastion:~]$ ./DataSafe_External_Users_Audit_Dashboard.sh Correlated Data : DataSafe_External_Users_Audit_Dashboard.csv [oracle@linux-bastion:~]$ head -3 DataSafe_External_Users_Audit_Dashboard.csv Target,DB user,OS user,Client host,Client ip,Event,Operation status,Operation time,External user,displayName,mail,source DBS23OCI,ANUJ,oracle,linux-bastion,10.0.0.124,LOGON,FAILURE,2025-07-02T17:38:58Z,ocid1.user.oc1..aaaaaaaaam4ulylhebm4zwtiaqsy4xxxxxxxwu6imevy3lihnkejs7h43nlknkywq,anuj.t.tripaxxxx@oracle.com,anuj.t.tripaxxxx@oracle.com,OCI DBS23AZPDB,ALLUSERS,oracle,linux-bastion,129.146.107.120,COMMIT,SUCCESS,2025-07-10T19:34:38Z,b41b0688-c07e-416d-bf13-e9b0dbxxx107,Alex Kovuru,alex.kovuruxx@gmail.com,AzureAD [oracle@linux-bastion:~]$您将利用一组提供的 shell 脚本来自动执行这些进程。确保将这些脚本下载到 OCI 计算实例。为了确保每日更新仪表盘,请安排这些脚本在 OCI 计算实例上通过 cron 作业运行。此作业应安排在定制 Oracle Data Safe 报告生成时间后执行。
任务 3:配置 OCI 日志分析
-
准备主机将日志传输到 OCI Logging Analytics 。
运行以下命令以确保 oracle-cloud-agent 可以读取日志。
sudo -u oracle-cloud-agent /bin/bash -c "head -3 /home/oracle/DataSafe_External_Users_Audit_Dashboard.csv"预期输出:
Target,DB user,OS user,Client host,Client ip,Event,Operation status,Operation time,External user,displayName,mail,source DBS23OCI,GLOBAL_USER,labuser,clienthost,49.37.181.25,LOGOFF BY CLEANUP,SUCCESS,2025-07-17T15:26:10Z,ocid1.user.oc1..aaaa...,alexk,alexxxx@example.com,OCI DBS23OCI,GLOBAL_USER,labuser,clienthost,49.37.181.25,COMMIT,SUCCESS,2025-07-17T15:15:02Z,ocid1.user.oc1..aaaa...,alexk,alexxxxxx@example.com,OCI -
为审计 CSV 创建分隔的语法分析器。
我们将构建一个解析器,将每个 CSV 行转换为结构化日志字段,OCI Logging Analytics 可以筛选、扩充和可视化。
-
转到 OCI 控制台,导航到 Observability & Management 、 Logging Analytics 、 Administration 、 Parsers 和 Create Parser ,然后输入所需的信息,如下图所示。

-
单击字段并将标题列映射到 OCI 日志分析字段名称。
对于每个 CSV 列,选择现有字段;如果不存在合适的字段,则创建用户定义字段 (User Defined Field,UDF) 。根据需要使用 + 图标进行创建。

-
单击语法分析器测试并按照以下步骤操作:
-
切换到 Parser Test 。
-
确保示例行解析成功。预览网格应显示映射到所选字段的每个列。
-
确认 Timestamp 列正确解析(无语法分析错误;日期/时区正确)。
-
单击创建语法分析器以保存。

-
-
-
Create a File Source That Uses the Parser 。
源告知 OCI Logging Analytics 在何处查找日志(路径模式、收集方法)以及如何解释日志(解析器和元数据)。
转到 OCI 控制台,导航到 Observability & Management 、 Logging Analytics 、 Administration 、 Sources 和 Create Source ,然后按下图中所示输入所需信息,然后单击 Create Source (创建源)。

-
将源与实体和日志组关联。
关联将激活收集过程:源链接到特定实体(例如主机),收集的日志将路由到指定的日志组。
-
转到 OCI 控制台,导航到 Logging Analytics(日志分析)、 Administration(管理)并单击 Sources(源)。

-
在源详细信息页面中,选择包含要关联的实体的区间。
-
单击 Unassociated Entities(未关联的实体)以列出可用于/符合关联条件的正确类型的实体。

-
在未关联的实体中选择一个实体,然后单击添加关联。
-
选择现有的日志组(如果可用)。在本教程中,我们将通过单击创建日志组来创建新的日志组。


-
单击提交。

-
-
摄取开始后,确认记录可搜索,并且字段将按预期填充。

查看日志浏览器:

任务 4:浏览日志并使用三个小部件构建仪表盘
利用 OCI Logging Analytics 可视化使用外部身份元数据扩充的 Oracle Data Safe 审计日志。使用 Microsoft Azure User Footprint Pie Chart、OCI User Footprint Pie Chart 和详细审计表视图构建仪表盘。
-
创建 Azure 用户封装饼图小组件。
运行以下日志浏览器查询:
'Log Source' = Demo_AZ_OCI_DS_Source | where Source = AzureAD | stats count as Azure_Events by 'External User' | sort -Azure_Events
单击操作和保存搜索(如下图中所示),然后添加到仪表盘(如果仪表盘不存在,则创建新建仪表盘)。

-
创建 OCI 用户封装饼图小部件。
运行以下日志浏览器查询:
'Log Source' = Demo_AZ_OCI_DS_Source | where Source = OCI | stats count as OCI_Events by 'External User' | sort -OCI_Events
单击操作,保存搜索,如下图中所示,然后添加到现有仪表盘。

-
创建详细审计表视图。
运行以下日志浏览器查询:
'Log Source' = Demo_AZ_OCI_DS_Source | fields 'Target Name', db_user, OS_user, Client, 'Host IP Address (Client)', Event, Operation_status, externalId, 'External User', mail, Source, -Entity, -'Entity Type', -'Host Name (Server)', -'Problem Priority', -Label, -'Log Source'
单击操作,保存搜索,如下图中所示,然后添加到现有仪表盘。

-
查看保存的仪表盘。
转到 OCI 控制台,导航到 Logging Analytics(日志分析)、 Administration(管理)和 Dashboards(仪表盘),然后单击创建的仪表盘 (
Demo_AZ_OCI_DS_DashBoard)。
相关链接
确认
-
作者 -Anuj Tripathi 首席云架构师 Alex Kovuru(首席解决方案架构师)
-
贡献者 — Indiradarshni Balasundaram(高级云工程师)
更多学习资源
通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Integrate Oracle Data Safe and OCI Logging Analytics with OCI IAM and Microsoft Entra ID
G39713-02
Copyright ©2025, Oracle and/or its affiliates.