HarmonyOS 企业空间互传:管控企业文件传输安全,你的企业APP实现了吗

HarmonyOS 企业空间互传:管控企业文件传输安全,你的企业APP实现了吗 什么是企业空间互传你有没有想过公司员工在手机之间传文件怎么保证安全比如员工 A 给员工 B 传了一份公司机密文件公司怎么知道这件事怎么审批如果员工把公司机密传给了竞争对手怎么办企业空间互传Enterprise Space Kit就是用来解决这个问题的。它让企业 MDM移动设备管理应用可以管控设备之间的文件传输。简单说就是给企业文件传输加了一道审批关。你可能会问MDM 是什么MDM 是 Mobile Device Management 的缩写中文叫移动设备管理。企业用 MDM 来管理员工的手机比如远程安装应用、设置密码策略、擦除数据等。企业空间互传就是 MDM 的一个功能模块。举个例子员工 A 想给员工 B 传一份公司文件。在没有企业空间互传的情况下员工 A 直接就传了公司完全不知道。有了企业空间互传之后员工 A 传文件前需要先提交审批审批通过后才能传输。传输记录会被记录下来方便公司审计。核心功能Enterprise Space Kit 的核心功能是设置审计信息设置审计信息为文件传输设置审批状态和审计记录。这是最核心的功能所有的管控都基于审计信息审批管理管理文件传输的审批流程。包括创建审批请求、审批通过、审批拒绝等你可能会觉得功能有点少其实这个 SDK 的定位就是审计它不负责文件传输本身只负责记录和管控。文件传输还是用系统自带的功能企业空间互传只是在传输前加了一道审批关。环境搭建硬件要求设备类型2in1/PC 设备HarmonyOS 系统HarmonyOS 6.0.0 beta1 及以上软件要求DevEco Studio 版本DevEco Studio 6.0.0 Beta1 及以上HarmonyOS SDK 版本HarmonyOS 6.0.0 Beta1 及以上搭建步骤安装 DevEco Studio去华为开发者官网下载安装配置开发环境确保网络环境正常设备调试使用真机进行调试项目结构├── entry/src/main/ets │ ├── entryability │ │ └── EntryAbility.ts // 程序入口类 │ ├── pages │ │ └── Index.ets // 主界面 │ └── svcability │ └── fileTransferService.ets // 接口调用 └── entry/src/main/resources // 资源文件目录项目结构很简单核心逻辑在fileTransferService.ets里。这个文件封装了企业空间互传的接口方便在页面中调用。文件传输审批流程下面是企业空间互传的文件传输审批流程通过拒绝员工发起文件传输请求创建审计信息设置状态为待审批调用 setAuditInfo管理员查看审批列表管理员审批结果更新状态为已审批更新状态为已拒绝员工开始传输文件传输完成更新状态为已完成通知员工审批未通过审计信息管理流程下面是审计信息的完整管理流程是否文件传输发起记录审计信息包含用户ID/时间/备注提交到企业后台管理员审核是否合规?审批通过审批拒绝记录审批日志生成审计报告第一步配置权限在module.json5中添加权限{requestPermissions:[{name:ohos.permission.ENTERPRISE_FILE_TRANSFER_AUDIT_POLICY_MANAGEMENT}]}这个权限是企业 MDM 应用权限普通应用无法使用。什么意思呢就是说只有企业开发的 MDM 应用才能用这个功能普通个人开发者的应用用不了。为什么要限制因为这个功能涉及企业文件管控如果谁都能用那就乱套了。只有企业授权的 MDM 应用才能管控文件传输。第二步导入模块import{fileTransfer}fromkit.EnterpriseSpaceKit;导入企业空间互传模块。这个模块包含了设置审计信息等接口。第三步创建文件传输服务import{fileTransfer}fromkit.EnterpriseSpaceKit;constTAG:string[EnterpriseSpaceKit];classFileTransferService{SetAuditInfo(transactionNum:string,info:fileTransfer.AuditInfo):number{console.info(TAG,setAuditInfo);returnfileTransfer.setAuditInfo(transactionNum,info);}}exportdefaultnewFileTransferService();创建一个文件传输服务类封装setAuditInfo方法。为什么要封装一层因为直接调用fileTransfer.setAuditInfo也可以但封装成类之后代码更整洁也方便以后扩展其他功能。setAuditInfo返回一个数字表示操作结果。0 表示成功其他值表示失败。第四步设置审计信息在主页面中调用设置审计信息的方法。Button($r(app.string.setAuditInfo)).onClick((){try{consttransactionNum:string1111111;constinfo:fileTransfer.AuditInfo{auditId:123456,userId:100,userName:test,time:Date.now(),comments:Waiting approval,status:1};constret:numberFileTransferService.SetAuditInfo(transactionNum,info);this.getUIContext().getPromptAction().showToast({message:Succeeded in setting audit info.});console.info(TAG,Succeeded in setting audit info. ret:${ret});}catch(err){this.getUIContext().getPromptAction().showToast({message:Failed to set audit info.});console.error(TAG,Failed to set audit info. Code:${err.code}, message:${err.message});}})点击按钮时设置审计信息。我来解释一下各个字段transactionNum交易号用来标识一次文件传输。每次传输都有一个唯一的交易号方便后续查询和跟踪auditId审计 ID用来标识这条审计记录userId用户 ID发起文件传输的用户userName用户名发起文件传输的用户名称time时间戳记录什么时候发起的传输comments备注比如Waiting approval等待审批status状态比如 “1” 表示待审批“2” 表示已审批“3” 表示已拒绝设置成功后这条审计记录就保存下来了。企业管理员可以在后台看到这条记录进行审批操作。审计信息的作用设置审计信息后企业可以做很多事情跟踪文件传输// 记录文件传输的审计信息constinfo:fileTransfer.AuditInfo{auditId:generateAuditId(),userId:getUserId(),userName:getUserName(),time:Date.now(),comments:Transfer confidential document,status:pending};fileTransfer.setAuditInfo(transactionNum,info);每次文件传输都会记录一条审计信息包括谁传的、什么时候传的、传的什么文件、状态是什么。企业管理员可以在后台查看所有的传输记录。审批管理// 审批通过constapproveInfo:fileTransfer.AuditInfo{auditId:auditId,userId:approverId,userName:approverName,time:Date.now(),comments:Approved by manager,status:approved};fileTransfer.setAuditInfo(transactionNum,approveInfo);管理员审批通过后更新审计信息的状态为approved。员工看到状态变了就可以开始传输文件了。审计日志// 记录审计日志constauditLog:fileTransfer.AuditInfo{auditId:auditId,userId:userId,userName:userName,time:Date.now(),comments:File transferred successfully,status:completed};fileTransfer.setAuditInfo(transactionNum,auditLog);文件传输完成后更新审计信息的状态为completed。这样整条传输链路都有记录方便后续审计。实际应用场景企业空间互传在实际开发中有很多用途企业文件管控// 员工传文件前先审批asyncfunctiontransferFile(file:File,recipient:string){// 创建审批请求constauditInfo:fileTransfer.AuditInfo{auditId:generateAuditId(),userId:getCurrentUserId(),userName:getCurrentUserName(),time:Date.now(),comments:Transfer to${recipient},status:pending};// 设置审计信息consttransactionNumgenerateTransactionNum();fileTransfer.setAuditInfo(transactionNum,auditInfo);// 等待审批结果constresultawaitwaitForApproval(transactionNum);if(result.statusapproved){// 审批通过开始传输awaitstartTransfer(file,recipient);}else{showError(审批未通过);}}企业文件管控是最常见的场景。员工传文件前先提交审批请求。管理员在后台审批通过后员工才能传输。整个过程都有记录方便审计。合规审计// 记录所有文件传输用于合规审计functionlogFileTransfer(transactionNum:string,fileInfo:any){constauditInfo:fileTransfer.AuditInfo{auditId:generateAuditId(),userId:getCurrentUserId(),userName:getCurrentUserName(),time:Date.now(),comments:File:${fileInfo.name}, Size:${fileInfo.size},status:logged};fileTransfer.setAuditInfo(transactionNum,auditInfo);}合规审计是企业必须做的事情。很多行业比如金融、医疗都有合规要求必须记录所有的数据传输行为。企业空间互传可以自动记录这些信息。敏感文件保护// 传输敏感文件时需要额外审批asyncfunctiontransferSensitiveFile(file:File){if(isSensitiveFile(file)){constauditInfo:fileTransfer.AuditInfo{auditId:generateAuditId(),userId:getCurrentUserId(),userName:getCurrentUserName(),time:Date.now(),comments:Sensitive file transfer request,status:needs_extra_approval};fileTransfer.setAuditInfo(transactionNum,auditInfo);// 需要更高级别的审批awaitrequestHighLevelApproval(transactionNum);}}敏感文件比如财务报表、客户数据、技术专利等需要更高级别的审批。普通文件可能只需要部门经理审批敏感文件可能需要总监甚至 VP 审批。适用场景企业空间互传适合以下场景企业 MDM企业移动设备管理文件审计审计设备间的文件传输合规管理确保文件传输符合企业策略数据防泄露防止企业数据泄露注意事项权限要求需要企业 MDM 应用权限普通应用无法使用设备支持目前只支持 2in1/PC 设备手机和平板暂时不支持审计信息审计信息要完整包括谁、什么时候、做了什么、状态是什么审批流程要设计合理的审批流程不能太复杂也不能太简单隐私合规使用文件管控功能要遵守隐私法规不能过度监控员工总结企业空间互传让企业可以管控设备间的文件传输核心流程配置企业 MDM 权限创建文件传输服务设置审计信息记录传输行为管理审批流程控制传输权限掌握了这些你就能为企业应用添加文件传输管控功能提升企业的数据安全性。