跳到主要内容

单客户端订阅场景

场景介绍

提供统一的安全审计数据单客户端订阅与取消订阅接口,应用可以获取设备上的安全审计数据(如下表),以支撑审计相关业务。

审计事件ID说明
0x027000000剪切板复制粘贴事件
0x810800800账号登录登出事件
0x007000000窗口截屏录屏投屏事件
0x00F000000移动存储插拔事件,如U盘、存储卡等具有存储功能的外设插拔事件
0x02E000000打印机事件
0x01C000007文件事件
0x01C000008进程创建退出事件
0x01C000009网络事件
0x01C00000AKIA文件拦截事件
0x02D000000相机事件
0x010000000应用事件
0x011000000edm事件
0x012003000证书操作事件
0x01C00000BKIA文件新增事件
0x01C00000CKIA文件变种事件
0x01C00000E网络流量事件
0x01C00000F网络连接事件
0x00B000000应用权限变更事件
0x003000001DNS审计事件

约束与限制

当前能力仅支持2in1设备。

业务流程

流程说明:

  1. 开发者应用订阅安全审计数据。
  2. Device Security Kit调用回调函数通知开发者应用,开发者应用根据审计数据进行业务处理。
  3. 当开发者应用不需要使用该审计数据时,取消订阅安全审计数据。

接口说明

以下是安全审计数据订阅与取消订阅接口,更多接口及使用方法请参见API参考

接口名描述
on(type: 'auditEventOccur', auditEventInfo: AuditEventInfo, callback: Callback<AuditEvent>): void订阅安全审计数据
off(type: 'auditEventOccur', auditEventInfo: AuditEventInfo, callback?: Callback<AuditEvent>): void取消订阅安全审计数据

开发步骤

  • 在开发准备过程中,需要申请权限:ohos.permission.QUERY_AUDIT_EVENT。
  • 只允许清单内的企业类应用申请该权限,申请方式请参考:申请使用企业类应用可用权限
  1. 导入Device Security Kit模块及相关公共模块。

    import { securityAudit } from '@kit.DeviceSecurityKit';
    import { BusinessError} from '@kit.BasicServicesKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
  2. 订阅安全审计事件。

    const TAG = "SecurityAuditJsTest";
    const callback = (event: securityAudit.AuditEvent) => {
    hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func eventId= ' + event.eventId);
    hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func version= ' + event.version);
    hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func content= ' + event.content);
    hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func timestamp= ' + event.timestamp);
    hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func userId= ' + event.userId);
    hilog.info(0x0000, TAG, '%{public}s', 'Security_SecurityAudit_JsApi_Func deviceId= ' + event.deviceId);
    };
    let auditEventInfo: securityAudit.AuditEventInfo = {
    eventId: 0x810800800
    };

    try {
    hilog.info(0x0000, TAG, 'on begin.');
    securityAudit.on('auditEventOccur', auditEventInfo, callback);
    hilog.info(0x0000, TAG, 'Succeeded in on.');
    } catch (err) {
    let e: BusinessError = err as BusinessError;
    hilog.error(0x0000, TAG, 'on failed: %{public}d %{public}s', e.code, e.message);
    }
  3. 取消订阅安全审计事件。

    try {
    hilog.info(0x0000, TAG, 'off begin.');
    securityAudit.off('auditEventOccur', auditEventInfo, callback);
    hilog.info(0x0000, TAG, 'Succeeded in off.');
    } catch (err) {
    let e: BusinessError = err as BusinessError;
    hilog.error(0x0000, TAG, 'off failed: %{public}d %{public}s', e.code, e.message);
    }