BAM的用户和角色管理
BAM是SOA Suite中的一个产品。它一般分为四个角色:Administrator, Architect, Creator, Viewer。不同人可能被赋予不同角色,不同角色的权限是不同的。
默认的情况下,系统建域时创建的WebLogic域帐号weblogic是用用这里的全部角色的。
在实际环境中,是不应该大家都用weblogic来登录和使用系统的,因此,应当为每个人设立个各自的角色。但是,一时想做这个事情时,却发现找了半天没找找这个功能在哪里做,用weblogic帐号登录/OracleBAM后选择“Administration”进入管理后的界面虽然有看到“用户管理”和“角色管理”,确基本都是只读的。
找了一通文档,只说要增加用户或者修改角色之类的活都在WebLogic那里,于是马上进入WebLogic的控制台进入用户管理界面,确也没找到有BAM定义的上面提到的这几个角色,也没有相关的组,颇为晕。
不得已,打开BAM的部署包(BAM是一个部署在应用服务器上的一个应用程序),找到oracle-bam.ear\META-INF\jazn-data.xml这个文件,里面有如下的片段内容:
<app-role>
<name>Report Creator</name>
<display-name>Has access to features for creating reports.</display-name>
<class>oracle.security.jps.service.policystore.ApplicationRole</class>
<members>
<member>
<class>weblogic.security.principal.WLSGroupImpl</class>
<name>BamReportCreators</name>
</member>
</members>
</app-role>
从中猜想:oracle-bam是一个应用,它定义了自己的角色(app-role),并且设定了谁拥有这个角色(或者说设定了这个应用角色和一个enterprise级的角色或者组的映射关系),即属组BamReportCreators的用户拥有该角色,为什么这个名字表示组?因为WLSGroupImpl表示WebLogic的组。
好家伙,在WebLogic控制台的用户管理界面中并没有看到这样的组名,还得劳烦本Admin来创建。。。
创建了组,把一个用户加入了该组,登录/OracleBAM界面,果然,只有该用户有的角色的按钮是可点的,其他都被disabled了。