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 {
//登录失败
}