学习研究Integrity软件包,不得不研究学习其权限控制,其控制粒度可大可小。要讲权限控制,得先了解其用户的管理。

     针对Integrity软件包来讲,得分用户管理和权限控制管理两部分来处理,分别为security realm和security scheme;security realm主要是确定用户管理属于哪个用户管理系统,security scheme则确定将用户或用户群组登录信息发送到哪个网络。

    一、用户管理

    Integrityr软件包做为ALM产品,理所当然拥有自身完善的用户管理机制,当然也可以跟其他用户管理系统做无缝的对接,至于能否使用SSO还需要进一步研究。

    先讲讲自身的用户管理,在之前的安装配置的时候提及过在启动新安装的Integrity服务前需配置users.properties和groups.properties。在已知用户群和用户群组的情况下,可以使用该方式进行用户配置,其中users.properties的数据格式为"username=password",groups.properties的数据格式为"group=userName1,userName2,...,userNamen,.."。在软件包客户端的administrator端的MKS DOMAIN节点下可以配置用户以及用户群组。

     与其他用户管理系统作集成,需要进行后台配置文件的修改,涉及的配置文件为security.properties,主要可以与下表中用户管理系统作集成

194533757.png

        需要注意的是修改完配置文件需要重启Integirty服务。由于使用Integrity是有一定的权限控制,而不是所有的用户都可以使用访问Integrity,因此需要将集成好的用户管理系统中的用户导入到Integrity系统中特定的用户群组中。

        基于之前提及过的Integrity服务端有大量的缓冲机制,当然用户也不例外。要充分掌握好Integrity软件包并能更好的基于软件包做定制开发,得比较清晰的了解其服务端的业务逻辑处理过程,因此在这里有必要就用户的登录在Integrity服务端的实现进行讲解,其服务端的业务逻辑处理过程大致如下图所示

200026623.png

        说明,首先客户端向服务端提交用户登录请求,服务端先查看缓存中是否存在用户信息或用户会话,如果存在则允许用户使用系统或系统操作;不存在,则判断Integrity是否集成第三方用户管理系统,没有集成则在Integrity自身用户管理体系进行用户验证,如果验证失败则反馈客户端失败信息,反之则允许使用系统或系统操作;如果集成其他用户管理体系,则看配置文件中验证顺序,按其配置的先后顺序依次进行验证,验证通过后如果不是MKS自身用户就将用户信息(不包括密码)写入至软件包数据库中,并写入服务端的缓存以及允许用户操作使用系统;如果没有通过则提示错误信息。

    二、权限管理

     这里分析的是用户和用户群组的权限管理控制。用户权限的计算规则如下图所示

152219803.jpg

 

    以上仅仅是个人对Integrity软件包的用户管理以及权限控制的理解,仅做参考。