节省SAP License的解决之道

背景介绍:
广州XXX公司是一家从事日用品生产的专业化公司。目前采购了我们公司的EKP系统、SAP系统和IBM的BW(数据仓库)系统,由于SAP的License比较昂贵,为了节省License,客户希望从EKP登录SAP之后,所有的用户使用同一个SAP帐号,而该用户能访问哪些报表或数据的权限信息在EKP中进行维护和管理。
它们之间的逻辑关系如下:
EKP        -> BW -> SAP
BW负责从SAP基础数据库中抽取数据并生成报表
EKP负责从BW中抓取客户需要的报表并展现出来

 

关键问题:
要解决以上问题,有两个关键技术点需要解决:
1. EKP跟SAP之间的单点登录
2. 由于访问BW报表是通过URL带参数的方式来传递的,所以必须保证权限参数不被泄漏出去

 

解决方案(一):
1. 单点登录
对于单点登录,由于SAP支持Form认证,所以该功能很容易就实现了。实现的代码样例如下:(注意下表中的红色字体)
<html>
        <FORM name="logonForm" method="post" action="http://bwdq.liby.com.cn:50200/logon/logonServlet?j_user=sangq&j_password=980401&redirectURL=/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct!2fplatform_add_ons!2fcom.sap.ip.bi!2fiViews!2fcom.sap.ip.bi.bex?QUERY=TEST2&VARIABLE_SCREEN=X&DUMMY=6">
                <input style="WIDTH: 21ex" class="urEdfTxtEnbl" id="logonuidfield" name="j_user" type="text" value="sangq" title="用户 ID *">
        <input style="WIDTH: 21ex" class="urEdfTxtEnbl" id="logonpassfield" name="j_password" type="password" value="980401" title="用户密码">
        <input style="height:3ex;" class="urBtnStd" type="submit" name="uidPasswordLogon" value="登录">
        </FORM>
        <script>document.forms[0].submit()</script>/
</html>

 

2. 参数安全
A、方案一
由于我第一次去XXX公司,不认识IBM的顾问,也不知道IBM还有个项目团队在XXX公司,更不认识IBM的项目经理,在IBM项目经理缺席的情况下,我们三方初步确定了以下方案:
1. EKP开发一套权限管理,用户能访问哪些报表由权限管理来控制。
2.用户登录EKP之后立即登录SAP,获取单点登录需要的Session。
3.当用户点击报表时,EKP将该报表需要的权限参数加密,也就是说将上表中的&VARIABLE_SCREEN=X&DUMMY=6加密成串,然后将该加密串送给BW。
4. BW开发一个专门用来解密权限参数的接收页面,根据解密后的结果BW负责Open相关的报表。

方案确定后,我们公司方开始技术预研并通过了测试。但是,IBM方项目经理来了之后否决了该方案,原因是在XXX公司的IBM项目团队中没有懂JAVA开发的人员,他也很难申请到JAVA开发人员来支持,在他的强烈要求下,我们采取了第二种方案。

 

B、方案二
1.EKP开发一套权限管理,用户能访问哪些报表由权限管理来控制。
2.用户登录EKP之后立即登录SAP,获取单点登录需要的Session。
3.当用户点击报表时,EKP将该报表需要的权限参数取出来,后台提交给一个公共页面,该页面内嵌BW的报表页面,它的唯一作用就是隐藏参数,保证参数不被泄漏。
4.同时为了降低风险,将EKP用户的权限限制在一个可控的范围之内,EKP还需要开发一套帐号映射管理,它是用来控制EKP用户进入SAP时是用哪个身份登录的,多个EKP帐号映射一个SAP帐号,这样,在BW中,BW可以将不同的SAP用户限制在不同的报表上。

方案确定后,我们公司方调整了技术方案并通过了测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值