发明内容
为解决上述现有技术所存在的问题,本发明提出了一种客户关系管理***访问控制方法,包括:
将客户管理服务部署在PaaS私有云平台,并在该云平台中加入身份验证,用户通过调用PaaS私有云平台提供的接口,并在完成身份验证后使用该服务。
优选地,所述PaaS私有云平台包括:应用层、服务层、读写层以及存储层,在应用层中包括Web应用、Web服务和开发接口三种服务模式,Web应用直接响应用户从浏览器发送的请求,企业级用户采用用户租用与服务装配的方式实现企业客户管理***应用的定制;Web服务通过调用服务层提供的接口实现服务调用;开发接口通过调用服务层提供的接口实现可定制开发;多个Web应用服务器之间实现负载均衡,对应用请求进行分流,提供对高并发的支持;所述服务层包括通用服务、基础服务和业务服务三个模块;其中通用服务提供了日志管理、通信管理接口;基础服务提供了用户管理、身份验证管理、计费管理接口;业务服务提供了客户管理、订单管理以及与业务逻辑相关的接口;各个服务模块采用分布式部署,或采用不同的平台开发,所述读写层提供了不同数据源的数据访问接口,支持对分布式文件***、分布式集群数据库的透明存取;
所述PaaS私有云平台中的企业客户管理***将所有的功能封装为服务的形式;客户通过定制并组装服务的形式获取所需要的功能;企业利用平台提供服务查询接口查询所有可用的服务,并根据需要申请开放相应的服务;平台收集小型企业对企业客户管理***的个性化需求;通过企业软件的接口层,实现企业软件层与企业客户管理***软件云计算资源之间的连接通道,具体包括标准协议和协商机制的制定、不同计算资源的选取、组合规则;通过PaaS私有云平台提供的云存储数据接口,实现企业客户管理***的数据迁移,将企业客户管理***涉及的数据信息存储至云计算平台。
本发明相比现有技术,具有以下优点:
本发明提出了一种客户关系管理***访问控制方法,在云平台下搭建客户关系管理***服务,供企业按需租用,降低了企业成本,并通过用户访问控制来保证企业信息的安全性。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种客户关系管理***访问控制方法。图1是根据本发明实施例的客户关系管理***访问控制方法流程图。
本发明在PaaS私有云平台企业客户管理***中加入身份验证,用户需要使用客户管理服务时可以通过调用云平台提供的接口来进行使用,身份验证的总体过程包括:
用户向PaaS私有云平台发送登录请求,登录请求包括要访问的资源,以及对资源的访问方式信息;云平台解析用户发来的登录请求,获取请求方的ID、属性证书等信息,然后将用户信息和请求与验证策略进行匹配;根据用户信息和请求与验证策略的匹配结果判断是否允许登录和访问,并将结果发送给用户。
企业客户管理***采用基于用户群与角色的分层取回策略。其中根据用户群定义该用户群定制的服务集与数据访问权限;根据用户隶属的角色定义用户的操作权限。身份验证服务涉及的实体包括企业、部门、用户、角色、权限、资源、操作。企业通过付费后可以使用企业客户管理***,一个企业可以有多个用户。每个企业申请到服务之后所有针对服务的操作都是供给本企业内部用户使用的。部门是对用户的分类,用户和部门是多对一的关系。一个企业有多个部门。用户中,管理用户是企业管理服务和普通用户的最高权限的用户;普通用户是直接使用服务进行业务操作的用户。管理用户为普通用户新建帐户,包括添加普通用户,添加角色、添加权限、添加部门、为角色绑定权限、为用户绑定角色、为用户绑定权限等一系列操作。普通用户获取与其角色相对应的权限功能,用户存取服务的权限限制在角色以及单独为其绑定的权限之内。用户通过角色获取权限功能,权限通过角色赋给用户。一个角色可以绑定若干个权限。资源是被保护的对象,包含硬件、软件以及数据。操作是存取资源后可以对资源进行的行为集合,包含读取、写入、删除、查询、编辑这些针对资源的行为。
在数据库表中需要建立企业表、部门表、角色表、用户表、权限表、资源表、操作表、用户角色表、用户权限表、角色权限表、用户角色权限选择表。本发明的身份验证服务是嵌入在企业客户管理***中的,使用前需要注册和登录***,登录后,企业管理者可以对企业内部用户进行管理,包括添加用户、查询用户权限、赋予用户角色、赋予用户权限、新建角色、赋予角色权限、新建权限。首先企业以一个租户单位注册申请服务,获得一个企业管理用户的帐户,然后企业管理用户登录平台,为企业的普通用户创建帐户并创建角色,为普通用户分配角色,然后普通用户在权限范围内使用服务。建立用户和角色的关系,通过角色推导用户的访问权限。
角色表中指定上级角色编号,形成了一棵角色树,从而扩展和自定义角色树。用户角色权限选择表指明当前描述的具体请求。通过请求名称的层级,映射到具体处理该请求的过程。并且添加附加信息指明当前记录描述的请求所具有的特征。
角色权限继承是指在属性结构中,一个角色可以继承其子树中角色的所有权限。每一个角色的权限来自于继承和当前角色独特的权限。在角色权限配置的过程中只需要配置其独特的权限。用户和角色的松耦合可以方便在企业内人事变化的同时,修改用户所在的角色类别。同时由于访问权限和用户的关系是间接性通过角色来连接的,所以在改变用户所在角色的同时,修改了用户对应的角色授权访问权限。
在继承用户个人授权的角色集合中获取最低等级的角色。把角色组织成多叉树结构,采用寻找角色树中多个角色结点的最近公共祖先的方法,可以一次性找到所有用户的最低上级,并且把运算结果全部写入缓存。提高个人授权继承关系的实现效率。服务端截取到用户请求的URL时,经过权限检测,若该用户对当前请求的操作没有权限,则返回拒绝请求的响应内容。如果权限检查通过,继续执行请求对应的操作代码,返回最终的处理结果。
在业务的运作中,若有第三方用户,即不属于该企业的用户需要参与该企业下的指定资源操作,对应企业的管理者可以使用个人授权的机制对其进行授权,在授予用户指定资源指定流程的写操作权限同时,配置该用户是否对指定资源的其他流程拥有读权限。对不具有权限的其他操作将读写请求分开,既保证该用户参与到企业运作中,又保证了业务数据的安全。默认所有和资源绑定的工作流均满足角色的权限继承关系,仅在企业人员变更时,修改人员与角色的映射关系;如果用户请求进行扩展更加细致的控制粒度,定制开发时只需要增加请求的附加信息即可。
***采用多层次、多应用的***架构。共分为四个层次:应用层、服务层、读写层以及存储层。应用层提供了三种服务模式。Web应用直接响应用户从浏览器发送的请求,企业级用户采用用户租用与服务装配的方式实现企业客户管理***应用的定制;Web服务通过调用服务层提供的接口实现服务调用;开发接口通过调用服务层提供的接口实现可定制开发。多个Web应用服务器之间实现负载均衡,对应用请求进行分流,以提供对高并发的支持。服务层包括通用服务、基础服务和业务服务三个模块。其中通用服务提供了日志管理、通信管理等通用功能的接口;基础服务提供了用户管理、身份验证管理、计费管理等基础功能的接口;业务服务提供了客户管理、订单管理等与业务逻辑相关的接口。各个服务模块可以采用分布式部署,也可以采用不同的平台开发。读写层提供了不同数据源的数据访问接口,可以支持对分布式文件***、分布式集群数据库的透明存取。
PaaS私有云平台企业客户管理***将所有的功能封装为服务的形式,仅提供给企业最基本的功能。客户可以通过定制并组装服务的形式获取所需要的功能。企业查询所有可用的服务,并根据需要申请开放相应的服务。
平台提供服务查询接口,使用户在企业客户管理***组件库中方便的找到相应功能的组件。平台收集小型企业对企业客户管理***PaaS私有云平台的个性化需求。通过企业软件的接口层,实现企业软件层与企业客户管理***软件云计算资源之间的连接通道,具体包括标准协议和协商机制的制定、不同计算资源的选取、组合规则。通过PaaS私有云平台提供的云存储数据接口,实现企业客户管理***的数据迁移,将企业客户管理***涉及的数据信息存储至云计算平台。
本发明采用以下身份验证方法。使企业用户在存取存储到PaaS私有云平台客户关系服务***中的企业资源时,通过身份验证逻辑对用户权限授予的判断。保证在云中的企业资源有效隔离性又可以得到必要的受控共享。
首先,根据企业具体的安全需求及其组织结构为企业和资源定义组织结构属性标签。用户在经过身份认证登录到***后,当用户存取资源时,经过安全配置信息进行判断,然后确定是否授予相应的权限。
要在名字节点中添加身份验证模型,企业用户在存取企业资源之前,首先通过密钥服务器和名字节点进行身份验证,验证通过后,在以下身份验证逻辑中判断是否授权给用户。用户与服务器在密钥服务器上进行注册,密钥服务器生成并分配密钥服务器与用户的共享私钥Kkn,密钥服务器与名字节点的共享私钥Kkn。并设定验证服务器与令牌服务器之间的共享私钥为Kat,用户登录时,***请求令牌服务和用户身份的信息打包发送给验证服务器。验证服务器收到请求后,查询用户数据库,验证用户合法后则随机为用户生成一个与令牌服务器进行通信的私钥Kut,然后创建一个授权信令,该信令中包含有用户名,令牌服务器服务名,用户地址,当前时间,有效时间和Kut。授权信令使用Kat加密。验证服务器将用户授权信令和Kut用用户和认证服务器的私钥Ku加密后发送给用户。用户在收到验证服务器发送回的消息后,解密得到授权信令和Kut,由于授权信令用Kat加密,因此用户不能看到授权信令中的内容,这样保证了只有合法的用户才能通过令牌服务器的认证,从而得到令牌服务器的服务授权信令。用户持授权信令并连同请求的服务名用Kut加密发送给令牌服务器,请求授权信令。令牌服务器收到用户发送的服务请求后,用Kat解密授权信令和Kut,再用Kut解密得到用户信息,并与授权信令中的用户信息进行对比,验证用户是否合法有效,若合法,则为用户和名字节点之间生成会话私钥Kun,并将用户名,用户地址,服务名,有效期,时间戳和Kun打包成授权信令ST,并将用Kkn加密的ST和Kun用Kut加密回复给用户。用户收到令牌服务器的信息,用Kut解密得到用户与名字节点之间的会话私钥Kun,并将自己的用户名和地址打包成Au,再将ST和用Kun加密的Au发送给名字节点,请求认证。名字节点收到用户的信息后,Kkn解密得到用户名,用户地址,服务名,有效期和用户与名字节点之间的会话私钥Kun,再用Kun解密得到用户信息,然后与从ST中得到用户信息进行对比,进行身份验证。若身份合法有效,则为用户生成并颁发证书,用于用户在名字节点上进行身份认证。用户拥有了证书后,当用户持证书申请访问PaaS私有云平台中的某文件时,名字节点首先验证证书是否是合法有效,从而判断用户身份是否有效。若身份合法有效,则根据用户名,用户地址和服务名查询元数据,用户属性信息库,以及资源属性信息库,查询到用户属性信息,包括用户真实姓名,用户所属企业,用户所属部门,以及工作职务,以及资源属性信息(如资源所属企业,部门,以及所属的权限),然后查询该企业用户对所申请存取的资源是否具有相应的访问权限。
综上所述,本发明提出了一种客户关系管理***访问控制方法,在云平台下搭建客户关系管理***服务,供企业按需租用,降低了企业成本,并通过用户访问控制来保证企业信息的安全性。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算***来实现,它们可以集中在单个的计算***上,或者分布在多个计算***所组成的网络上,可选地,它们可以用计算***可执行的程序代码来实现,从而,可以将它们存储在存储***中由计算***来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。