壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4812|回复: 27

[分享知识 原创连载]BIEE 11g权限入门到精通(不定期更新,详细讲解BIEE 11g权限)

[复制链接]
发表于 2013/7/4 22:42:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本文为 "分享知识 原创连载" 活动推荐文章!

前言:BIEE 11g的权限较之前10g版本有了较大的变化,最明显的地方就是与构架上的变化,其与 Oracle Fusion Middleware Security 紧密的集成在了一起。从今天开始,我将不定期的更新帖子,详细讲解11g权限方面的问题,欢迎大家留言交流!


由于第一次写连载,不足之处还望大家多多包涵!

在开始之前先让我们来了解一些基本概念

1、认证(Authentication):所谓认证,就是校验用户名和密码是否正确,正确就通过认证,反之则不通过

2、授权(Authorization):授权就是给用户赋予相应的权限,比如userA是否可以查看报表B。

用户登录BIEE的过程,就包含这两个过程;首先用户提供用户名和密码交由BIEE校验,如果正确才会进行授权,否则直接提示用户名密码错误。要记住,认证和授权是分离的!



在10g的时候,默认情况下(不考虑LDAP和外部表),用户和组的信息是存在RPD里的。而11g则存放到了与之关联的weblogic域内置LDAP服务器里了。同时,在10g的时候存在用户和组(Group)的概念,11g则新引入了角色的概念(Role),并将BIEE内部权限的授予对象变成了现在的用户和角色(Role)。

简单来说,你可以把11g中的角色(Role)等于同10g的组(Group),那么11g的组(Group)呢?他又是干什么的呢?其实这个组是位于内置LDAP服务器里的组,其对BIEE来说不可见。组和角色的分离有什么好处呢?
1、可以在不变更企业已有LDAP服务里用户和组的情况下,将它们映射到BIEE的角色上。因为LDAP服务器通常是全局的,多系统共用的,没必要为BIEE权限的需求而到LDAP里去新建组。另外,你也可以在不改变角色在BIEE内部授权的情况下,通过重新映射组和角色的关系实现认证源(LDAP服务器)的迁移。

2、便于成批添加用户到角色里。由于BIEE的授权对象是用户和角色,虽然用户可以直接挂载到角色上,但是比起把一百个用户添加到一个角色下,和把这一百用户所属的组添加到角色上,哪个更容易?



11g组和角色的关系如下图所示:
biesc_jd_002.gif


这是安装完毕之后默认的权限配置情况,可以看到User1,User2,User3属于BIConsumers这个组,BIConsumers这个组属于BIConsumer这个角色,依此类推。另外还要注意到角色之间是有继承关系的,而组之间是没有继承关系的。

是存放在Weblogic的内置LDAP服务器里的(为了方便,通常我们可能会说其存在console里的,因为我们是使用console来管理weblogic服务器)


角色是存放在Policy Store里的(默认是基于xml文件的,名叫system-jazn-data.xml),其通过 Oracle Enterprise Manager 来进行管理的(同样的,通常我们也会说其是存放在em里的)。

Note:
console的访问方式 http://xxxx:7001/console
em的访问方式 http://xxxx:7001/em



说的这里,不知道大家有没有疑惑,BIEE是怎么知道用户A应该能看哪些报表,不能看哪些报表的呢?怎么让用户B能有新建分析的权限,而用户A没有呢?

这里要引入一个安全策略(Security Policy)的概念(通俗的讲就是权限)。

这个策略主要有如下三块:

1、RPD:RPD里可以定义字段和表的权限,比如用户A能不能访问表A;这些权限在你访问BI Server的时候会被应用。
2、Catalog: 用户能看哪些报表,能使用哪个功能都是在Catalog里定义的;这些权限在你访问Answer和Dashboard的时候会应用。
3、Policy Store :这里面定义了哪些用户或者角色可以使用BI Server\BIP\RTD的哪些功能;比如什么用户可以使用Admin Tools联机打开RPD。

所谓的策略,其实就是一些记录,只是这些记录存储的位置各不相同。如下图所示:
tools_summary.gif
细心的朋友可能会发现图中有一个Credential Stores的东西我们还没提到,它是干什么的呢?顾名思义,其就是用来存放一些凭据(比如密码)的,大家都知道11g的RPD是有密码的,这个密码是我们自定义的,那我们把这个RPD上传到服务器之后,服务器怎么能打开这个RPD呢?它也得需要密码啊,既然需要,那么就得有一个地方来存储这个密码吧?
没错,这个密码就是存放在Credential Stores里的。同样的还是一些系统用户的密码也是存放在这里的,具体的我们在之后的帖子里在讲解。




下面我们来串一下整个登录过程,回答一下前面的问题,结束今天的内容。


假设已知用户A属于角色ROLEA,且我们只对角色进行了授权,ROLEA可以查看Revenue By Year这张报表(ROLEA可以查看这张报表的记录就存在与报表同名的*.atr文件中)。


当用户A登录BIEE的时候,BIEE会去Policy Store 查到其属于ROLEA(用户所属的角色信息,可以在BIEE的我的帐户菜单中看到),并记录到session的安全变量中;登录成功之后
用户A点击Revenue By Year这张报表的时候,系统就会去查询这张报表的安全策略,发现里面有一条记录写着ROLEA可以访问这张报表,那么用户A就可以看到报表的内容了,反之则不能。


OK,今天就写到这里了,改天再继续吧!

本帖被以下淘专辑推荐:

发表于 2013/7/6 12:51:21 | 显示全部楼层
想通过参加这个活动,沉淀一下自己:
连载主题:BIEE 11g 权限入门到精通
更新周期:每周
本连载的亮点是:由浅入深的帮助大家理解BIEE 11g的权限设计和管理方面的内容
其他要说的话:无

纵横四海点评:家洛是对于技术有特殊灵敏的人,自己有幸和家洛共事了一段时间;他在短时间内就搭建好了基于BIEE的数据仓库,在此之前我对于BIEE也仅仅是停留在文档上;相信他的连载也将给更多希望了解BIEE的人由浅入深的了解BIEE;BIEE是BI领域举足轻重的产品,希望了解BI和学习BI的人这个机会不要错过噢;

发表于 2013/7/5 10:18:09 | 显示全部楼层
本帖最后由 jlf117q 于 2013/7/5 10:34 编辑

风总 讲得很好 先占个位 风总请教一下 BIEE单点登录sso配置 是不是还要单独在下载一个CAS服务器和CAS客户端 11.1.1.7的不能直接用 url 如(http://IP:7001/analytics/saw.dll?Dashboard&NQuser=用户名&NQpassword=password)这样直接登录了吗 现在这样直接登录报用户名和密码错误

点评

你们也写写连载如何? 写连载可以更好的梳理我们自己的知识,提升自己;  发表于 2013/7/5 10:19
回复 支持 0 反对 1

使用道具 举报

发表于 2013/7/5 09:48:57 | 显示全部楼层
感谢风总分享!先存着,以备不时之需!

点评

你们也写写连载如何? 写连载可以更好的梳理我们自己的知识,提升自己;  发表于 2013/7/5 10:19
发表于 2013/7/5 10:00:25 来自手机 | 显示全部楼层
风总监,开课了~
发表于 2013/7/5 10:00:25 来自手机 | 显示全部楼层
风总监,开课了~

点评

你们也写写连载如何? 写连载可以更好的梳理我们自己的知识,提升自己;  发表于 2013/7/5 10:19
发表于 2013/7/6 09:53:42 | 显示全部楼层
很不错的知识共享,希望能看到更多,谢谢
发表于 2013/7/6 19:33:20 | 显示全部楼层
{:soso_e142:}支持风总!

点评

你也写写连载吧;挑选一个你感兴趣的话题;  发表于 2013/7/6 20:40
发表于 2013/7/7 21:56:00 | 显示全部楼层
这个连载后面会谈谈如何对第三方系统进行整合的方案么?不知道BIEE在整合第三方系统上是不是有一些成熟的方案;
 楼主| 发表于 2013/7/8 15:55:49 | 显示全部楼层
jlf117q 发表于 2013/7/5 10:18
风总 讲得很好 先占个位 风总请教一下 BIEE单点登录sso配置 是不是还要单独在下载一个CAS服务器和CAS客户端 ...

7.0里这样的语法同样是有效的,详情可以参见:
http://docs.oracle.com/cd/E28280_01/bi.1111/e16364/apiwebintegrate.htm#i1009288



sso如果采用开源cas方案的话是需要单独搭建cas服务器,cas客户端需要集成到analytics这个web应用中,
详情可以参见我的博客:
BIEE11g 集成开源CAS实现SSO
http://blog.csdn.net/lele5000/article/details/7884268
 楼主| 发表于 2013/7/8 15:56:59 | 显示全部楼层
纵横四海 发表于 2013/7/7 21:56
这个连载后面会谈谈如何对第三方系统进行整合的方案么?不知道BIEE在整合第三方系统上是不是有一些成熟的方 ...

会的,和第三方系统整合的最好方案就是SSO
发表于 2013/7/12 22:50:51 | 显示全部楼层
大型集团型企业对于BIEE的应用往往都是整合企业内部其他的系统进行综合的应用,SSO一直都是一个重要的主题,各厂商产品接口不一,提高了整合的难度,对于BIEE来说提供了丰富的webservice接口,企业在SSO这块的应用可以根据企业自身情况进行二次开发等个性化处理.
发表于 2013/7/12 23:06:45 | 显示全部楼层
还在学习10G中,,徘徊在BIEE的大门外    虽然还不懂这么高深的东西  还是顶一个  谢谢分享。

点评

我也想啊。。只是刚起步 现在知识还不过关、。等我入门以后一定会写的。  发表于 2013/7/12 23:36
你也多多参与原创连载噢;  发表于 2013/7/12 23:33
发表于 2013/7/12 23:46:09 | 显示全部楼层
风总奸果然是个人才啊{:soso_e100:}学习了
发表于 2013/7/22 16:48:08 | 显示全部楼层
浅显易懂,很好,对11g权限清晰多了,谢谢!
发表于 2013/8/1 13:28:32 | 显示全部楼层
  BIEE 11 把账户信息从RPD里分离出来,一个比较麻烦的问题就显现出来了,用户不能修改自己的账户口令,只能由管理员来改,不知有没有好的解决办法
 楼主| 发表于 2013/8/7 22:48:16 | 显示全部楼层
本帖最后由 lianle987 于 2013/8/7 23:13 编辑

在之前的帖子里,我们主要讲解了一些BIEE 11g权限的基本概念,并和10g版本的作了一些对比。
今天我们就来讲讲11g的默认权限(即软件安装完毕之后BIEE的一些初始化权限配置)。
不知道大家还记不记得,在10g的时候,RPD中存在一个名叫Administrator的用户,这个用户就是管理员用户,其拥有最高权限。
到了11g,由于架构的变化,帐号密码之类的信息已经从RPD中移到了Weblogic内置的LDAP服务器里了。
且用户名默认为weblogic,密码则在安装过程中指定。
如果我们想要修改用户名密码、增删用户,那么我们就得使用Weblogic的控制台,这里一个基于web的管理程序,用于管理Weblogic服务器
默认访问路径为:
http://主机名:7001/console
注:使用weblogic及安装过程中指定的密码登录
默认的用户、组及角色如下图所示:
default_objects.gif
大家可以看到组和角色之间是有对应关系的
组BIConsumers挂在角色BIConsumer之下
组BIAuthors挂在角色BIAuthor之下
组BIAdministrators挂在角色BIAdministrator之下
这个“挂”的操作是在EM中完成的
注:至于为什么引入组和角色,大家可以参见我之前的帖子。
既然组和角色之间的关系已经定义好,那么我们在新建用户,或者想更改用户当前的权限的时候,就可以只用在console把将用户加到对应的组里就可以了。
如果现有的配置满足不了我们的需求,我们才会考虑在console中新建新的组,并将其“挂”到相应的角色(可以根据需要新建或利用现有角色)上;最终在BIEE系统中,我们只能对用户或者角色进行授权。

下面我们来看看应该如何进一些用户管理方面的常规操作吧。

1、新建用户
登录console,点击左侧的“安全领域(Security Realms)”然后选择“myrealm”-“用户和组(Users and Groups)”选项卡,如下图所示:
1.gif

点击左下角的“new”按扭,就可以新建用户了;同理,切换到“组(Groups)”标签,就可以新建组了,具体过程大家可以按提示操作即可。


2、给用户分配组
创建好的用户就会出现在第1步“用户(Users)”标签下面的列表中:
2.gif

点击我们想要分配组的用户名,进入用户属性设置界面,可以看到有4个标签
3.gif
可供我们修改的主要是“密码(Passwords)”和“组(Groups)”两个标签,这里先选择组标签,
然后勾选我们需要分配的组,接着点右中间的右箭头,然后点击“save”,就可以把用户加入该组之中。


3、修改密码
在第2步的界面中,选择“密码(Passwords)”标签,即可修改用户的密码。


建好了用户和组,接下来我们需要创建角色了。虽然角色不是必须的,但是通常来说我们都是对角色而不是用户来进行授权。

为什么?
因为角色(用户)在报表上的权限是直接写到对应报表同名的atr文件中的,如果有100个用户需要访问某一张报表,按照用户授权的方式我们就需要
对该报表操作一100次,以完成对100个用户的授权;而采用角色的方式,我们可能只需要创建一个角色,然后在报表上对该角色授一次权,
最后把100个用户挂到这个角色上就可以了。

看到这里,也许有朋友会问了,虽然后者你只授一次权,但是你需要把100用户添加到这个角色里,你得添加100次啊。没错,不过把用户添加到角色里
就相对来说要容易得多了。因为虽然默认情况下BIEE是使用的Weblogic内置的LDAP作为认证源,且只能通过console来管理用户(console用户的管理功能太薄弱),但是实际上在真正的企业应用环境中,我们都会将BIEE与企业已有的认证源(企业已有的LDAP服务器或者存放了用户信息的关系数据库)进行集成,而这些认证源中通常都会有组的概念,且可以支持批量添加用户到组的操作,我们只需简单把组和角色做一个映射就可以完成用户到角色的关联。

另外,由于在开发过程中,用户不确定,但是我们在设计权限的时候,角色可以固定,这样等真正上线的时候我们就无须对报表本身的授权进行更改,而只需要在认证源中调整用户和组之间的关系就能应对用户权限的管理。


未完待续…………



发表于 2013/8/8 13:08:41 | 显示全部楼层
本帖最后由 ygj26 于 2013/8/8 13:11 编辑
cuizg 发表于 2013/8/1 13:28
BIEE 11 把账户信息从RPD里分离出来,一个比较麻烦的问题就显现出来了,用户不能修改自己的账户口令,只 ...

首先顶一下风总监{:soso_e113:}

如果用户是Weblogic Embedded LDAP管理的话,也就是默认的安全提供程序,则可以简单的通过weblogic提供的api来修改。至于修改密码界面你可以做成web页面,嵌入到biee中或者其它方式。
可以参考:http://blog.csdn.net/ygj26/article/details/8995504

就像风总监说的,实际的企业用户管理,一般不大可能使用weblogic内嵌的用户,他们会有自己的用户管理系统,各种LDAP。weblogic可以轻松的将其它LDAP配置进来。
发表于 2013/8/11 11:58:04 | 显示全部楼层
这个资料非常详细,非常好,,谢谢楼主,学习了。
发表于 2013/8/19 09:56:06 | 显示全部楼层
好好向风总监学习,努力提高自己
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/28 22:56 , Processed in 0.043009 second(s), 30 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表