BIEE单点登录解决方案

BIEE单点登录解决方案与实现

广州精点计算机科技有限公司

GuangZhou kingpoint Information Technology Co.,Ltd

版权所有侵权必究

目录

1.解决方案 (3)

2.方案实现 (4)

2.1BIEE设置 (4)

2.1.1资源数据查询................................................................................... 错误!未定义书签。

2.1.2资源批量导入................................................................................... 错误!未定义书签。

2.1.3单条资源的增加................................................................................. 错误!未定义书签。

2.1.4单条资源的修改................................................................................. 错误!未定义书签。

2.1.5资源的删除......................................................................................... 错误!未定义书签。

2.2Portal验证功能 (4)

2.2.1增加资源结点................................................................................... 错误!未定义书签。

2.2.2删除资源结点................................................................................... 错误!未定义书签。

2.3整合部署 ....................................................................................................... 错误!未定义书签。

3.统一平台单点登录功能 .......................................................................................... 错误!未定义书签。

3.1链接方式登录........................................................................................ 错误!未定义书签。

3.2界面方式登录........................................................................................ 错误!未定义书签。

4.BIEE单点登录的实现 ............................................................................................ 错误!未定义书签。

4.1BIEE外部表用户登录配置........................................................................... 错误!未定义书签。

4.2Portal账号登录BIEE原理 ........................................................................... 错误!未定义书签。

4.2.1Portal账号验证失败的情况 ............................................................... 错误!未定义书签。

4.2.2Portal账号验证成功但BIEE用户名匹对不成功的情况 ................ 错误!未定义书签。

4.2.3Portal账号验证成功且BIEE用户名匹对成功的情况 .................... 错误!未定义书签。

1.解决方案

BIEE使用URL+明文用户名和密码可不登录直接访问BIEE仪表盘,这是一种难以控制用户权限且不安全的简单单点登录方式。

目前要实现省公司Portal账号来登录BIEE,首先必须设置好BIEE使用外部表用户实现登录的功能,这个外部表是从Portal上同步到本地数据的,然后在验证Portal账号成功后,到外部表中匹对用户名,如果存在用户名那么获取用户和密码进行BIEE自动登录;如果该用户名不存外部表中,将在外部表中创建这一用户,并统一加待验证的组,待管理员分配正式组方可访问。下面是Portal 登录BIEE的验证情况:

Portal账号验证失败的情况

对于Portal账号验证失败,说明该用名非法登录,系统将返回登录界面,拒绝登录。

Portal账号验证成功但BIEE用户名匹对不成功的情况

Portal验证成功,但在外部表匹对不到用户名,说明该用户新加入Portal的账号,本地同步该账号的用户信息,系统自动在外部中为用户新建用户名和密码,并分配到待验证的组,这时该用户尚不可登录BIEE,需要等待管理员的验证并分配到相应的组中。

Portal账号验证成功且BIEE用户名匹对成功的情况

Portal账号验证成功且用户名匹对成功的情况说明该用户合法,对允许进入系统。

2.方案实现

2.1BIEE权限设置

2.1.创建并导入外部用户表

●数据库中创建用户表:FOR_AUTHENTICATION,用于维护“业务人员”与“GROUP”的关系。

注:属于多个GROUP,用“;”间隔;“未验证组”为所有用户的初始组。

●启动Oracle BI Administrator Tool。

●导入数据库表。

●可以从物理层看到biee_user_info表已经导入。

1.3.外部表登录方式在Administrator的设计

●Manage Variables,单击Session目录下的Initialization Blocks,在右侧空白区域单击

右键,选择New Initialization Blocks,输入名称。

●单击Edit Data Source按钮,输入SQL语句;单击Browse按钮,选择Connection Pool。

●单击Edit Target Source按钮,设置与上步SQL语句中各字段对应的变量。

注:如果Session已存在变量USER,那么对应于SQL中Username可自定义名称;如果Session中不存在变量USER,那么对英语SQL中Username必须为USER。

●单击OK按钮,设置完成。

1.4.登录BIEE检验权限

2.2Portal验证功能

通过综合应用平台(https://www.360docs.net/doc/e718934487.html,)配置一个链接

(https://www.360docs.net/doc/e718934487.html,/login.do?method=login)到我们系统,注意我们系统的url必须要以https://www.360docs.net/doc/e718934487.html,结尾的域名。详情请查看《揭阳移动综合应用平台开发规范 v1.0.doc》。通过SSO接口获取到了登陆帐号之后修改biee的用户密码,然后用获取到的账号和自己修改的密码模拟登陆到Biee系统。

代码说明(J2EE)

//应用系统标识值,由综合应用平台管理员给出

String systemID = "__JYMobile-tbiee__";

//接入综合应用平台的账号,由综合应用平台管理员给出

String sysAccount = "tbiee";

//接入综合应用平台的密码,由综合应用平台管理员给出

String sysPassword = "tbiee";

//从cookies中读取的加密内容

String sKey = "__JYIAMS-Passport__";

String skey2 = "iPlanetDirectoryPro";

A.从其他网站上连接过来的时候,必须用特定的网址访问,如

https://www.360docs.net/doc/e718934487.html,:8080/login.do?method=login

系统自动搜索用户的cookies,如果https://www.360docs.net/doc/e718934487.html,域下边存在key为

"__JYIAMS-Passport__"的cookie则表示其已经在综合应用平台系统中登录;如果https://www.360docs.net/doc/e718934487.html,域中存在key为"iPlanetDirectoryPro"的cookie则表示其已经在统一信息平台系统中登录;系统将自动获取该用户的用户名登录biee。

String userId = null;

String sToken = null;

//获取综合平台的cookie 只能在同一个域下面才可以获取到

cookie,https://www.360docs.net/doc/e718934487.html,;

Cookie cookies[] = request.getCookies();

if (cookies != null) {

for (int i = 0; i < cookies.length; i++) {

if (cookies[i].getName().equals(sKey)) {

sToken = cookies[i].getValue();

break;

}

}

}

if (sToken != null) {

SSO locator = new SSOLocator();

SSOSoap soap = locator.getSSOSoap();

//下边getUserAccount方法中,如果是验证综合应用平台系统的cookie,则isgmccCookie的值为false,如果是验证统一信息平台的cookie,则值为true

ActionResult ar = soap.getUserAccount(systemID, sysAccount, sysPassword, false, sToken );

//判断是否验证,当AppAuth=0且ReturnValue=true时表示验证通过

if(ar.getAppAuth() == 0 && ar.isReturnValue()){

userId = ar.getReturnMessage();

} else {

//出错信息处理

}

}

B.如果不是通过其他系统的连接进入统一平台,系统转入登录页面供用户登录。

SSO locator = new SSOLocator();

SSOSoap soap = locator.getSSOSoap();

LoginResult lr = soap.loginCheck2(systemID, sysAccount, sysPassword, loginId, password);

//判断验证成功

if(lr.getAppAuth() == 0 && lr.getReturnValue == 0) {

//成功登录,进入统一平台

} else {

//登录失败

}

相关文档
最新文档