基于角色的权限控制

概述

作为一个信息管理系统,信息安全是最重要的,因此,权限是所有信息管理系统必不可少的功能,是每个开发者和运维人员必须关心的问题,也是本章节的重点。

从软件架构的角度来说,权限一般分为三种:数据权限、页面权限、页面元素权限。

  • 数据权限:是用户操作数据(即添加修改删除查看数据)的权限;单独将其拉出来的主要原因是,用户可以通过直接发送请求跳过界面的权限,请求数据;如果不设置数据层的权限,页面的权限可能形同虚设。
  • 页面权限:以财务对账页面为例,只对财务可见,其他人不仅看不到入口,即使直接输入财务对账页面的网址也不能访问。
  • 页面元素权限:以财务对账页面为例,只有会计可以点击该页面的提交按钮,其他财务即使可以访问,也只能查看信息,不能进行操作。

满足以上精细粒度控制的 低代码 产品可以满足开发者的大部分需求。

像金融业(金元证券、联通支付),银行业(中国银行),军工业(宁波海工)等等都是活字格的客户,他们已经非常详细地验证了活字格应用的安全性。

作为一个开发平台,活字格保证了自身所封装逻辑的安全性。对于开发者而言,则需要从设计到开发全程关注信息安全。如果开发者设计了不安全的功能(如匿名修改数据库,没有设置访问权限或没有使用强密码策略),最终构建的应用就会出现安全问题。

为了保证应用的安全性,获取相应的安全证书,我们建议您采用一些安全检查工具对活字格开发的应用进行安全检查,如 ZAP – OWASP(免费),SonarQube – SonarWorks(收费),Burp Suite – PortSwigger(收费),AppScan - IBM(收费)等。

活字格对安全性问题非常重视,如果您在开发、测试和认证的过程中遇到任何与安全相关的问题,可以随时告知我们,如果确实属于平台安全性问题,我们会在第一时间进行修复。

 

用户安全认证模式

活字格提供多种认证模式,其中包括:

  1. 普通认证
  2. Windows域认证
  3. 第三方用户集成

活字格支持的认证模式

(活字格支持的认证模式)

用户在访问活字格应用时,会根据不同的认证方式进行登录权限的校验与认证。保证认证通过后,方可进入应用进一步进行操作。

普通认证模式

该认证模式下,使用活字格的用户管理认证登录用户。当显示用户登录页面时,需要用户输入系统中存在(在服务管理控制台中进行管理)的用户名和登录密码进行登录。

Windows域认证

如果使用的是公司服务器上的Active Directory用户管理,那么活字格也提供此种用户认证的方式登录活字格应用。先通过登录Windows域账号,然后活字格会验证域账户的状态并自动登录到活字格应用中。

第三方用户集成

一些网站或第三方应用程序提供OpenId(OAuth2.0)认证,如谷歌、微软、微信、钉钉、用友U8、用友T+等第三方应用。

 

数据安全机制

活字格提供全维度的数据权限控制,包括行权限、字段权限和创建记录权限。数据权限配置全部基于每一张数据表独立配置,通过行权限和字段权限可以精确控制到某个具体数据的权限。

行权限

活字格可以通过给数据表设置行权限,使不同用户拥有不同的权限去读取、编辑、删除表中的数据,从而更为细粒度地控制数据权限,保证数据安全,只有具有相应的权限方可进行下一步操作。

设置行级数据权限

(设置行级数据权限)

字段权限

在活字格中,字段权限负责数据表列权限的控制,列权限即字段权限,用于控制用户可以访问的字段。给表设置字段权限,可以使不同用户对不同字段有不同权限,去进行读取、编辑、删除操作,从而起到数据保护的作用。字段权限是一组授权项目的集合,多个授权项目之间是“或”的关系,即符合任何一个授权项目的条件,就具有相应的权限。

设置字段数据权限

(设置字段数据权限)

创建记录权限

在活字格中,可以精确控制哪些用户具有添加数据的权限。数据的创建对于一个应用系统来说尤为重要。创建记录权限可以根据条件控制用户是否有创建记录的权限。设置的创建记录权限项之间是“或”的关系,即满足一个权限项的条件具有权限创建记录,否则没有权限创建新的数据记录。

设置创建记录的权限

(设置创建记录的权限)

 

页面安全机制

页面安全关乎应用网站的安全,而活字格可以精确控制每一个页面的访问权限。在应用的开发阶段,可以配置好页面的访问权限;在活字格应用发布后,可以在活字格服务管理器中针对不同的活字格应用灵活配置或修改页面权限。

在设计器中设置页面权限

(在设计器中设置页面权限)

页面元素权限机制

为了更小范围地控制用户的操作权限,保证应用的运行安全,活字格提供了最小粒度的单元格权限。针对页面上每一个单元格命令,都可以配置对应的单元格权限。单元格权限分为可用性权限和可见性权限。

  • 可用性权限:用户是否可以使用这个单元格。如,单元格类型为“按钮”的单元格,用户是否可以单击这个按钮并执行相应的命令;单元格类型为“文本框”的单元格,用户是否可以在文本框中输入字符。
  • 可见性权限:用户是否可以看到这个单元格。

在设计其中设置页面元素的权限

(在设计其中设置页面元素的权限)

 

系统的安全配置

为了帮助开发者在系统配置层面加强应用的安全性,活字格提供了大量安全配置。这些配置均可通过可视化的方式完成,无需手工修改配置文件或编写代码。

支持HTTPS

HTTPS是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。

活字格支持将应用发布为HTTPS应用,目前支持的HTTPS证书类型为pfx/p12证书。如果证书为其他类型,需要提前转换为pfx/p12证书。当准备好证书后,可以在活字格服务管理器中提前设置HTTPS,为指定端口绑定证书即可将活字格应用发布为HTTPS应用。

可视化配置SSL证书

(可视化配置SSL证书)

跨域安全

跨域请求针对应用网站来说非常重要,访问者可能会利用跨域漏洞攻击应用。活字格支持跨域请求的配置,可以有效过滤非白名单中的跨域请求。为了更精确地控制每一个应用的跨域配置,活字格提供了两种不同范围的跨域配置。

所有应用的默认设置

在活字格服务管理器中,可以选择配置所有应用共享的默认跨域设置。此设置可以针对服务管理器中所有应用进行过滤和筛选。

可视化配置跨域权限

(可视化配置跨域权限)

单个应用的安全设置

如果需要针对不同应用来配置跨域策略,活字格支持在单个应用中进行配置。

可视化配置单个应用的跨域权限

(可视化配置单个应用的跨域权限)

Auth2.0

OAuth2.0是一种具有高度安全性的授权协议,目的是保证用户资源的安全性。活字格提供两种授权方式的OAuth2.0认证——授权码和密码式。在活字格服务管理器中,用户可以在请求时将OAuth2.0访问令牌添加到Authorization Header中,用于权限与角色的校验,以此来控制访问服务端命令(Web API)、用户管理API和ODATA。

可视化配置OAuth2授权

(可视化配置OAuth2授权)

账户安全设置

活字格在保证用户安全方面考虑得十分完善,在活字格服务管理器中,可以配置密码修改提醒设置及强密码设置,并且可以配置密码输入错误和两步验证失败后的限制策略。除此以外,还提供两步验证器的设置,以此确保应用在通过用户名和密码验证后,还需要在动态验证器中验证动态登录码后,方可进入活字格应用。

  • 密码修改提醒:开启此设置后,如用户在第一次登录应用时没有更改初始密码,则会提醒用户更改登录密码。
  • 高强度密码:开启此设置后,用户使用的密码长度必须为8~18位,且至少包含小写字母、大写字母、数字和特殊字符中的3种类型。
  • 限制策略:当用户输入密码错误或两步验证次数达到设置的值时,系统会自动锁定用户。

可视化设置密码策略

(可视化设置密码策略)

应用保护

当使用活字格开发完应用后,活字格支持应用保护机制,提供对工程文件加密的功能。当设置了应用保护后,即使其他用户获取到了活字格开发完成的应用工程文件,也只有查看权限,无法发布该应用,也无法对外使用该应用,从而达到了保护应用的目的。

应用保护从安全角度出发,完善了保护机制,防止他人盗用活字格应用,构建良好的活字格生态体系。

可以在部署授权的活字格服务管理器上,下载当前活字格服务管理器的下载许可证。

导入应用许可证

(导入应用许可证)

下载许可证后,在活字格设计器中打开需要加密的工程文件,在开始菜单栏选择“另存为(加密工程)”,放入下载好的许可证,即可加密当前工程文件。加密后的工程文件只可以发布在下载许可证的活字格服务管理器上,从而最大程度地保证了活字格工程的安全性。

在活字格设计器中生成应用保护许可证

(在活字格设计器中生成应用保护许可证)