1、 BIEE单点登录处理方案和实现 广州精点计算机科技 GuangZhou kingpoint Information Technology Co.,Ltd 版权全部 侵权必究 目录 1. 处理方案 3 2. 方案实现 3 2.1BIEE设置 3 2.1.1资源数据查询 3 2.1.2资源批量导入 3 2.1.3单条资源增加 3 2.1.4单条资源修改 3 2.1.5资源删除 3 2.2Portal验证功效 3 2.2.1增加资源结点 4 2.2.2删除资源结点 4 2.3整合布署 4 3.统一平台单点登录功效 4
2、 3.1链接方法登录 4 3.2界面方法登录 4 4.BIEE单点登录实现 4 4.1BIEE外部表用户登录配置 4 4.2Portal账号登录BIEE原理 5 4.2.1Portal账号验证失败情况 5 4.2.2Portal账号验证成功但BIEE用户名匹对不成功情况 5 4.2.3Portal账号验证成功且BIEE用户名匹对成功情况 6 1. 处理方案 BIEE使用URL+明文用户名和密码可不登录直接访问BIEE仪表盘,这是一个难以控制用户权限且不安全简单单点登录方法。 现在要实现省企业Portal账号来登录BIEE,首先必需设置
3、好BIEE使用外部表用户实现登录功效,这个外部表是从Portal上同时到当地数据,然后在验证Portal账号成功后,到外部表中匹对用户名,假如存在用户名那么获取用户和密码进行BIEE自动登录;假如该用户名不存外部表中,将在外部表中创建这一用户,并统一加待验证组,待管理员分配正式组方可访问。下面是Portal登录BIEE验证情况: Portal账号验证失败情况 对于Portal账号验证失败,说明该用名非法登录,系统将返回登录界面,拒绝登录。 Portal账号验证成功但BIEE用户名匹对不成功情况 Portal验证成功,但在外部表匹对不到用户名,说明该用户新加入Portal
4、账号,当地同时该账号用户信息,系统自动在外部中为用户新建用户名和密码,并分配到待验证组,这时该用户尚不可登录BIEE,需要等候管理员验证并分配到对应组中。 Portal账号验证成功且BIEE用户名匹对成功情况 Portal账号验证成功且用户名匹对成功情况说明该用户正当,对许可进入系统。 2. 方案实现 2.1BIEE权限设置 2.1.创建并导入外部用户表 ● 数据库中创建用户表:FOR_AUTHENTICATION,用于维护“业务人员”和“GROUP”关系。 注: 属于多个GROUP,用“;”间隔;“未验证组”为全部用户初始组。 ● 开启Orac
5、le 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
6、 Source按钮,设置和上步SQL语句中各字段对应变量。 注:假如Session已存在变量USER,那么对应于SQL中Username可自定义名称;假如Session中不存在变量USER,那么对英语SQL中Username必需为USER。 ● 单击OK按钮,设置完成。 1.4.登录BIEE检验权限 2.2Portal验证功效 经过综合应用平台()配置一个链接()到我们系统,注意我们系统url必需要以结尾域名。详情请查看《揭阳移动综合应用平台开发规范 v1.0.doc》。经过SSO接口获取到了登陆帐号以后修改biee用户密码,然后用获取到账号和自己修改密码模
7、拟登陆到Biee系统。 代码说明(J2EE) //应用系统标识值,由综合应用平台管理员给出 String systemID = "__JYMobile-tbiee__"; //接入综合应用平台账号,由综合应用平台管理员给出 String sysAccount = "tbiee"; //接入综合应用平台密码,由综合应用平台管理员给出 String sysPassword = "tbiee"; //从cookies中读取加密内容 String sKey = "__JYIAMS-Passport__"; String skey2 = "iPlanet
8、DirectoryPro"; A.从其它网站上连接过来时候,必需用特定网址访问,如 :8080/login.do?method=login 系统自动搜索用户cookies,假如域下边存在key为"__JYIAMS-Passport__"cookie则表示其已经在综合应用平台系统中登录;假如域中存在key为"iPlanetDirectoryPro"cookie则表示其已经在统一信息平台系统中登录;系统将自动获取该用户用户名登录biee。 String userId = null; String sToken = null; //获取综合平台cookie 只能在同一个
9、域下面才能够获取到cookie,; 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 locato
10、r = 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时表示验
11、证经过 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 { //登录失败 }






