林建华
柯达(中国)图文影像有限公司信息系统部 福建 厦门 361022
文件共享是局域网应用的一个基础功能,也是信息共享,提高办公效率的基本要求。数据文件尤其是核心的财务、科研、生产数据,是一个单位重要的知识资产和机密,需要按保密要求严格保存管理,因此,如何保障数据文件在网络中的安全访问,严格控制用户按照授权访问共享文件,是一个重要的课题。
在实践中,通常由域管理员或其代理在共享文件服务器上按部门和部门下的项目组组织并创建共享文件目录,在各个共享目录的安全属性中为不同用户或用户组授予不同的只读或编辑权限,用户按授予的授权从终端在不同的目录中写入或读取文件,这些文件自动继承其所在目录的访问授权,从而实现控制终端用户对文件的不同读写授权。
在实践中,这种传统的共享文件管理方式存在以下几个问题:
第一,集中由域管理员或其代理进行文件服务器共享目录的访问授权,每次有文件授权需要变更,都必须由文件所有者通知管理人员或代理进行,效率偏低,尤其是在授权变动频繁,或者域用户组数量较多的情况。
第二,大中型的企业单位中,共享文件往往数量巨大,目录层级巨多,如果授权都由域管理员或代理进行,无疑工作量偏大。
第三,每个目录用户授权发生变更时,如果所涉及的目录包含的子目录和文件数量很多,则需要耗费很长的时间来遍历并更改该目录下每个文件的访问授权,效率偏低。
第四,共享文件的所有者无法及时、直观地获知文件授权情况并定期来审核文件的授权。
为了克服这些问题,我们提出并实现了以下解决方案:
与授权相关的用户组的名称和共享文件的目录挂钩,使得用户看到目录就知道授权的用户组,看到用户组就知道对应的目录。例如针对目录:Production-Workshop1-TeamA,分别新建两个用户组
前者只授予只读权限,后者授予可编辑修改权限。
域管理员在共享文件目录的安全属性里给相关用户组授予不同的只读或编辑权限,今后只通过增减用户组里的用户,便可以控制用户访问共享文件目录的不同权限,而且,每次用户访问权限的变更不再需要遍历相关目录下的所有子目录和文件。
给每个和共享文件目录授权相关的域用户组指定一个或多个所有者,并记录到一个数据库表中。今后由用户组所有者负责增减该用户组的所有用户成员;
在此基础上开发一个信息系统来管理域中的相关用户组,并授权给每个域用户组所有者,可以随时通过该系统,直观地自助管理或审核其负责的每个用户组的成员,从而以达到管理用户访问文件授权权限的目的;
应用此方案后,域管理员只负责在需要的情况下新建域用户组,给共享文件目录授予相关用户组相应的只读或者编辑权限,并且在数据库中维护用户组的所有者。日常中更多地给某个具体用户变更授权文件读写权限的工作,则分散由用户组所有者负责在相应的用户组中增减用户,由此实现了共享文件授权由各个部门或项目组自行管理的目标。
经过对以上解决方案的深入分析,进一步归纳整理并总结出该信息系统需要实现以下几个功能:
能够根据当前登录的用户身份自动判断罗列出其负责的所有域用户组;
根据某个域用户组从域中读取其所有用户成员;判断某个用户是否是某个域用户组的成员;
从某个指定的用户组中删除某个指定的用户;
给某个指定的用户组增加某个指定的用户;
从域中根据用户ID获得用户名称和描述等详情。
我们采用了jQuery+ASP.net来实现系统。jQuery是一款高效敏捷的前端javascript库,可以便捷精准地定位每个前端页面元素,具有丰富的前端功能,其AJAX技术通过简单的代码即可实现在无网页刷新情况下对部分网页的更新,结合ASP.net的webservice技术,可以轻松实现各种精彩的前后端交互技术和功能要求。
给每个与目录授权相关的域用户组指定一个或多个所有者,记录在表Grps里,表结构如下:
序号字段名称 类型 大小 允许为空索引 备注1 GrpName nvarchar 50 F 用户组名2 GrpOwner nchar 8 F IDX 用户组所有者
当所有者用户登录该系统时,由于系统运行在域环境下,通过HttpContext.Current.User.Identity.Name语句返回当前用户域账号,系统再根据当前登录用户的域身份,从数据库表Grps中查询出该用户负责的所有用户组,并显示在界面“用户组管理”页签下的用户组列表中,见图1。
图1 用户界面
代码如下:
以添加用户成员为例,其他功能如查看、删除等可以类推。
如果要为用户组添加用户成员,则从用户组列表中选中该用户组,点击右边的“增加成员”按钮,激发系统通过前端JQuery调用后端ASP.net相应的Web Service进行,JQuery代码如下:
以上JQuery代码通过Ajax调用后端的Web Service方法AddUserToGroup(), 同时传入用户ID和用户组两个参数,将用户加入用户组,如果成功则继续调用getGrpUsrs()函数刷新当前用户组成员,失败则弹窗提醒用户。对应的Web Service代码如下:
为了衡量用户对系统整体主观满意度,在系统运行半年后邀请了数据库表中所有的用户组所有者对系统进行评分,评分等级为1~5分,评分越高表示越满意,最终本系统获得4.8分,用户整体比较满意。
信息系统的安全审计是ISO审核的一项重要内容,尤其是对共享文件的安全保护措施是审核的重点内容之一,如果对本系统进一步加以改进提高,设计新功能对共享文件及其包含的所有子目录进行遍历,获得每个目录的所有用户组及其权限清单,增加可以查询某个用户所在的用户组清单,则非常有助于文件安全审计工作。此外,目前,通过域策略方式审计共享文件操作的信息简单,无法获取操作共享文件的远程用户详细信息,无法追根到底[1-3],在此方面还有很大的改进空间。
随着云计算云存储的发展,网盘系统在很多单位内部正得到日渐普及应用,对网盘共享文件的安全管理同样也是一个重要课题,本研究的管理思想对网盘共享文件的管理也有启迪[4-5]。
局域网共享文件未考虑到版本控制问题,难以追踪和多用户协同修改,这也经常被用户吐槽,值得纳入我们考虑未来在信息系统中加以改进。
保障共享文件的安全,是企业网络安全重要内容,传统的文件授权由管理员集中管理的做法,存在低效、用户不易审核等各种不足,本研究提出的解决方案可以有效解决这些问题,通过在企业的实际应用,大幅度降低了域管理员的工作负担,方便文件所有者对安全的审核,取得良好的管理效益,尤其是在共享文件目录的规模越大时,获得的效益越明显。