《BIEE单点登录解决方案》由会员分享,可在线阅读,更多相关《BIEE单点登录解决方案(13页珍藏版)》请在金锄头文库上搜索。
1、 BIEE单点登录解决方案与实现 1 目录1.解决方案32.方案实现32.1BIEE设置32.1.1资源数据查询32.1.2资源批量导入32.1.3单条资源的增加32.1.4单条资源的修改32.1.5资源的删除32.2Portal验证功能32.2.1增加资源结点42.2.2删除资源结点42.3整合部署43.统一平台单点登录功能43.1链接方式登录43.2界面方式登录44.BIEE单点登录的实现44.1BIEE外部表用户登录配置44.2Portal账号登录BIEE原理54.2.1Portal账号验证失败的情况54.2.2Portal账号验证成功但BIEE用户名匹对不成功的情况54.2.3Port
2、al账号验证成功且BIEE用户名匹对成功的情况61. 解决方案BIEE使用URL+明文用户名和密码可不登录直接访问BIEE仪表盘,这是一种难以控制用户权限且不安全的简单单点登录方式。目前要实现省公司Portal账号来登录BIEE,首先必须设置好BIEE使用外部表用户实现登录的功能,这个外部表是从Portal上同步到本地数据的,然后在验证Portal账号成功后,到外部表中匹对用户名,如果存在用户名那么获取用户和密码进行BIEE自动登录;如果该用户名不存外部表中,将在外部表中创建这一用户,并统一加待验证的组,待管理员分配正式组方可访问。下面是Portal登录BIEE的验证情况:Portal账号验证
3、失败的情况对于Portal账号验证失败,说明该用名非法登录,系统将返回登录界面,拒绝登录。Portal账号验证成功但BIEE用户名匹对不成功的情况Portal验证成功,但在外部表匹对不到用户名,说明该用户新加入Portal的账号,本地同步该账号的用户信息,系统自动在外部中为用户新建用户名和密码,并分配到待验证的组,这时该用户尚不可登录BIEE,需要等待管理员的验证并分配到相应的组中。Portal账号验证成功且BIEE用户名匹对成功的情况Portal账号验证成功且用户名匹对成功的情况说明该用户合法,对允许进入系统。2. 方案实现2.1BIEE权限设置2.1.创建并导入外部用户表 数据库中创建用户
4、表: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按钮,输入SQ
5、L语句;单击Browse按钮,选择Connection Pool。 单击Edit Target Source按钮,设置与上步SQL语句中各字段对应的变量。 注:如果Session已存在变量USER,那么对应于SQL中Username可自定义名称;如果Session中不存在变量USER,那么对英语SQL中Username必须为USER。 单击OK按钮,设置完成。1.4.登录BIEE检验权限2.2Portal验证功能通过综合应用平台(http:/)配置一个链接(http:/ v1.0.doc。通过SSO接口获取到了登陆帐号之后修改biee的用户密码,然后用获取到的账号和自己修改的密码模拟登陆到Bi
6、ee系统。代码说明(J2EE)/应用系统标识值,由综合应用平台管理员给出String systemID = _JYMobile-tbiee_;/接入综合应用平台的账号,由综合应用平台管理员给出String sysAccount = tbiee;/接入综合应用平台的密码,由综合应用平台管理员给出String sysPassword = tbiee;/从cookies中读取的加密内容String sKey = _JYIAMS-Passport_;String skey2 = iPlanetDirectoryPro;A从其他网站上连接过来的时候,必须用特定的网址访问,如http:/:8080/log
7、in.do?method=login系统自动搜索用户的cookies,如果域下边存在key为_JYIAMS-Passport_的cookie则表示其已经在综合应用平台系统中登录;如果域中存在key为iPlanetDirectoryPro的cookie则表示其已经在统一信息平台系统中登录;系统将自动获取该用户的用户名登录biee。String userId = null;String sToken = null;/获取综合平台的cookie 只能在同一个域下面才可以获取到cookie,;Cookie cookies = request.getCookies();if (cookies != nu
8、ll) for (int i = 0; i cookies.length; i+) if (cookiesi.getName().equals(sKey) sToken = cookiesi.getValue();break;if (sToken != null) SSO locator = new SSOLocator();SSOSoap soap = locator.getSSOSoap();/下边getUserAccount方法中,如果是验证综合应用平台系统的cookie,则isgmccCookie的值为false,如果是验证统一信息平台的cookie,则值为trueActionResu
9、lt ar = soap.getUserAccount(systemID, sysAccount, sysPassword, false, sToken );/判断是否验证,当AppAuth0且ReturnValuetrue时表示验证通过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 /登录失败第 11 页 共 13 页