**1.优点**
动态角色的好处是可以根据业务数据的变化自动地更改用户的权限,而无需再去手动更改用户的权限。
比如一个员工原来是普通员工,他有员工自助这个角色,一段时间后他由普通员工晋升为经理,那么需要为他增加一个经理自助的角色。
如果采用非动态角色,那么需要再单独去给员工配置权限,而可能企业里面维护职务数据的人和维护用户安全性的人不是同一个人,或者即使是同一个人,维护完职务数据后,也不一定会记得要去维护用户安全性,就会造成系统安全性维护不及时的问题。
而采用了动态角色以后,这一切都可以由系统来自动完成。不紧节省了维护时间,提高了工作效率,还能保证安全性能得到及时的维护。
(注:这里说的及时不是实时,我们可以让分配动态的角色的程序一天运行两次,这样可以保证数据维护得较为及时,但是仍然没法实时更新)
**2.前提条件**
由于动态角色的分配程序用到了PS系统里的异步消息,所以要使用动态角色必须开启应用服务器的Pub/Sub Servers和Domains Gateway。
应用服务器配置如下图:
**3.配置网关**
进入【PeopleTools➔集成代理程序➔配置➔快速配置】
配置好后的截图如下:
这里主要是官网URL要填对,还有能看到有效的域。可以通过点击Ping网关来看网关是否配置正确了。点击【Ping 网关】,看到如下的截图,就说明可以了:
如果Status不是Active,请检查应用服务器的配置和URL地址是否正确。
然后返回到集成代理程序快速配置页面,点击【高级网关设置】超链接,进入高级配置界面,再点击【网关属性设置】超链接,进入属性设置页面。配置如下图:
**4.创建角色查询**
这个和建立普通Query的方法一样,只不过查询类型要选成“角色”,而不是“用户”。查询返回OPRID和EMPLID就可以了。
在本例中,我们将建立一个经理自助的动态角色。
首先,要确定的就是哪些人可以有经理自助的权限。这里,我们假定凡是职务代码不是“I01”的人都是经理,都要有经理自助的权限。(普通员工职务代码是I01,其对应的描述为:无)。
所以,我建立的Role Query的代码如下:
该Role Query的更多截图如下:
**5.建立动态角色**
创建动态角色“GHAC_DYNAMIC_ROLE1”,为其分配好许可权列表后,进入动态角色页面,然后勾选“已启用查询规则”,在查询框内,填入我们刚才建立的Role
Query。配置如下图:
然后,点击测试规则,看看能不能筛选出满足我们条件的人。如果可以,点击执行规则即可为这些人分配上动态角色了。
**6.定期执行动态角色分配:**
动态角色虽然是动态的,但是必须要通过执行角色分配程序来为用户分配角色。而不能随业务数据的变化,实时的进行角色的变更。
所以,我们需要定一个循环来运行名为“DYNROLE_PUBL”的AE程序。
我们可以把循环设置为每12小时运行一次,这样就能达到业务数据变化后12小时内更新安全性的目的了。
作者:贺 欢
审核:赵 静
编辑:王 锐