基于SAP NetWeaver EP的单点登录(SSO)
更新时间:2024-06-03 06:08:01 阅读量: 综合文库 文档下载
- 基于sap大数据分析推荐度:
- 相关推荐
三一重工门户/商业智能项目培训文档
基于SAP NetWeaver EP的单点登陆(SSO)
1 介绍
几乎所有的门户系统在实施的过程中都会出现门户系统和后台Web应用集成的场景。有一些应用系统可能就是SAP系统(这些提供Web访问的工具包括:ITS、BSP或者Web Dynpro),同时有些系统也可能是non-SAP系统。
该文档针对两种基于SAP NetWeaver EP的实现单点登录的方法:SAP Logon Ticket(SAP登录票)和User Mapping(用户映射)。
[注:本文档不描述针对数字证书的方式和非浏览器环境的后台系统]
2 什么是Single-Sign-On
Single-Sign-On简称SSO,通常被描述为允许终端用户只进行一次验证就可以登录多个应用。
SAP NetWeaver EP允许多种方式来实现于Web应用的单点登录,该文档假设用户的业务场景是采用门户系统来代替后台Web应用来实现用户的认证。
3 Portal到Web的单点登陆策略 3.1 SAP Logon Ticket
这种策略是采用存放在用户浏览器端的cookie来实现认证信息的存放。一旦在浏览器中存放了cookie以后,cookie会随着用户访问Portal中的各个业务系统转发到各个后台系统中,但这里有个前提,就是Portal和各个后台系统是分布在同一个域里面的。
当后台Web应用获取到cookie信息以后,它必须知道如何来处理认证信息。如果后台是SAP系统,那么两者的集成是有先天的优势的,SAP系统之间已经内建了相互的认证机制,可以很方便的解析这些加密的认证信息,如果是non-SAP系统,SAP也提供了多种可以处理加密认证信息的工具和管理SAP Logon Ticket cookie的框架。
优点:
降低企业IT系统的维护成本:使用SAP Logon Ticket后,后台系统完全“信任”SAP Portal的认证信息,portal不在cookie中传递用户的密码给后端Web应用。所以后端系统就不需要手工管理用户密码,也不需要在各个业务系统之间同步密码,大大降低了IT系统的维护成本。
SAP标准的单点登陆(SSO)机制:所有新发布的SAP系统(包括一些旧的SAP系统)内建了基于SAP Logon Ticket实现单点登陆的机制,所以当我们集成SAP系统时,需要作
jil@neusoft.com
三一重工门户/商业智能项目培训文档
很少的工作,通过简单的配置就可以实现。
限制:
用户存储策略:SAP的企业门户只能为每个登陆用户建立一个存放用户信息的Cookie,所以当采用SAP Logon Ticket这种方式来连接多个后台系统时,先决条件是所有的这些系统必须要有一个相同的用户存储(在门户系统项目中,统一用户存储将是一个项目的难点)。使用登陆票来实现单点登陆最简单的场景是:门户系统的用户名与各后台系统的用户名相同。
与用户映射的冲突:某些SAP开发框架,例如BSP,支持SAP Logon Ticket或者User Mapping,一个后端系统一旦采用了SAP Logon Ticket cookie来传送用户信息就不能使用User Mapping。原因是一个采用相同用户名来建Session,一个是不一样的用户名。
3.2 User Mapping
用户映射是一种单点登录的实现方式,它的实现过程是portal服务器向后台系统传递用户名和密码,从而完成登录过程。当连接到web应用系统时,用户映射意味着通过请求的POST或GET方法传递用户名和密码。
有两种主要的用户映射实现方法——单独的用户映射和一般的用户映射
单独的用户映射
单独的用户映射中每个Portal用户被指定到一个唯一的后台系统用户。用户自己或管理员都可以完成指定。
一般的用户映射
一般的用户映射中多个用户被映射到一个后台系统的用户。用这种方法时,为了避免多个用户用同一个后台系统用户而产生冲突,通常由管理员来维护用户名和密码的映射。
用户映射的好处和优点
最小的技术调整:只要后台系统能从请求中接受用户名和密码,就不需要在后台系统上做任何配置。在portal端,也只需很少的配置,只需要创建一个系统对象并选好用户映射类型(“UIDPW”代表用户名和密码)。
简化后台用户管理(用一般用户映射时):用凭票方式实现单点登录,需要后台系统管理所有可能登录进该系统的用户。这可能需要在后台系统中创建成千上万个与portal系统对应的用户。
在这种情况下,用后台系统中的几个一般性的用户来代表几种不同访问权限,而不需要为每个Portal用户建立单独的用户将更有吸引力。举个例子,假设后台系统有两种显示数据
jil@neusoft.com
三一重工门户/商业智能项目培训文档
的级别——经理和员工。用一般性用户映射时,只需要建立两个后台系统的用户——用户“经理”和用户“员工”。每个portal用户映射到这两个用户之一。这种方法简化了后台系统的用户管理(只需管理两个用户)。
缺点和局限性
映射的维护量大:需要在portal系统中维护后台系统的用户名/密码。这个维护的工作量可能比较大,比如假如后台系统的密码需要每个月换一次,则portal里也需要做相应的修改。此外,如果允许用户维护自己的用户映射属性,就需要成立一个支持团队来处理用户锁定、忘记密码等情况。
安全:portal中存储密码始终是一个安全隐患。在两个地方(portal和后台系统中)维护密码也是不安全的。另外,用户映射方式在网路上传输用户名和密码到后台系统,在网络上也可能监听到密码。
用户映射需要的扩展或工作方式
安全通信:当使用用户映射方式时必须强制使用SSL和后台系统进行通信,否则密码会被完全暴露给网上进行监听的不怀好意的人。
基于组或角色的映射:映射portal中的组或角色到后台系统会减少管理员的工作量。尽管如此,需要指出的是用户映射不容易管理,同时只要一个用户能管理自己用户映射到单个系统,他就能对portal中所有被映射的系统进行管理。
改进的个性化:SAP Portal为每个可以进行用户映射的用户提供了标准的个性化窗口。但是,个性化工具有一个明显的缺点:需要用户知道portal中的系统别名和后台系统的关系。 在广泛使用用户映射,并且以上描述情况很可能会发生的情况下,建议创建一个可以被用来为特别系统处理用户映射的定制iView。这个iView可以嵌进相关的workset,因此最终用户会更加清楚他正在管理的是什么用户映射。从技术的角度,上面所描述的iView只需要简单地使用UME(用户管理引擎)的API。API提供了的storeLogonData方法,提供了存储用户映射数据到UME的功能。开发手册参见:
http://media.sdn.sap.com/html/submitted_docs/ume/ume40_0_index.htm
jil@neusoft.com
三一重工门户/商业智能项目培训文档
4利用SAP Logon Ticket集成SAP ECC系统 4.1原理与流程
SAP登录票据代表着用户的有效令牌,它在用户成功登陆portal之后产生。它是以cookie的形式存在于客户机的浏览器端,客户机的每一次请求它都会被发送。SAP登录票据存储了登录用户的验证信息,但是并不存储用户的密码。SAP Logon Ticket包含以下信息:有效期、发布系统、发布系统的数字签名、portal ID、User ID。
Logon Ticket方式实现登录过程的流程:
1、用户名密码登录3、Logon TicketPortal服务器Client2、用户验证4、凭票User Persistence Store(如LDAP)访问SAP或非SAP系统
登录过程:
门户本身作为生成票据的服务器,运作的原理如下:
Portal服务器第一次启动的时候,它会生成一对密钥,其中私钥用于登录票据的生成,公钥用于票据的解析,所以需要在portal里下载公钥文件并拷贝到J2EE服务器上。
登录流程:
用户凭用户名、密码登录Portal
Portal的用户管理引擎在存储用户的数据库或LDAP服务器上验证用户的登录信息。 3、验证成功后,Portal生成票据(Logon Ticket),并存储到用户的浏览器的cookie中 4、用户凭票登录SAP或非SAP系统
5、SAP系统和某些非SAP系统提供Logon Ticket的解析机制,某些不提供Logon Ticket解析机制的非SAP系统需要编程来解析出用户名,并到自己的用户中去查询是否有这个用户,如果有这用这个用户登录,若没有,则登录失败,显示登陆界面。
系统要求:
SAP NetWeaver Enterprise Portal 6.40 sp9以上 SAP R3系统,本例中为ECC5.0
jil@neusoft.com
三一重工门户/商业智能项目培训文档
4.2实施步骤
验证ITS和ICM配置
用T-Code RZ11 和SITSPMON 察看集成ITS的状态。
T-Code SMICM察看ICM配置和状态,确保ICM在运行。并通过Menu-〉Goto-〉Parameters-〉Display察看icm/server_port_0和icm/host_name_full这两个参数,实验中值分别为PORT=HTTP,PORT=8002和neusoft-sap.neusoft.com
用http://R3hostname.domain.com:8002/sap/public/ping检测设置的正确性(如果不能ping通,首先察看/sap/public/ping服务有没有激活,若没有,用事务SICF)
激活并发布WebGUI服务 激活ICF服务
SAP GUI登陆进R3系统,执行事务SICF并定位到/sap/public/bc/its/mines和/sap/bc/gui/sap/its/webgui,右击并选择激活服务。
发布IAC服务
进入事务SE80,定位到Utilities-〉Setting-〉Internet Transaction Server(Tab)-〉Publish(Tab),设置Selected Site为”INTERNAL”.
发布SYSTEM和WEBGUI
在Internet Services中定位到SYSTEM和WEBGUI,右击选择Publish-〉Complete Service 验证Web GUI服务
用http:// R3hostname.domain.com :8002/sap/bc/gui/sap/its/gui登陆webgui。 如果登陆不能成功,注意两点事项:
是否在同一个域下
可能R3 kernel版本过低
EP和R3配置的详细步骤 1、导出portal的证书
用管理员身份登陆EP,navigate到System Administration-〉System Configuration-〉Keystore Administration,在content tab中选择SAPLogonTicketpair-cert(默认),选择Download verify.der File,并存到本地。
jil@neusoft.com
三一重工门户/商业智能项目培训文档
2、导入portal的证书到R3系统 运行事务/nstrustsso2,在Certificate section部分,选择Import certificate, 浏览到从portal中导出的证书verify.der。选择“Add to Certificate List”
选择 “Add to ACL”
,填写相应的Portal名和System ID
(system ID 就是Portal系统的SID, Client 根据Portal UME 中一个叫“login.ticket_client“的参数的值来设置)
3、插入相应的参数到R3系统
运行事务/nRZ10,选择Profile Browse,选择Instance Profile。选择Change,确保login/create_sso2_ticket=2,login/accept_sso2_ticket=1,如果没有这两个参数,需手动加入。
4、在portal中建立系统,配置相应的参数
System Administration->System Configuration->System landscape,右击Portal Content,建立System 文件夹,并在文件夹下建立SAP system using dedicated application server的系统。
jil@neusoft.com
三一重工门户/商业智能项目培训文档
5、系统中ITS的配置
6、配置user management:
jil@neusoft.com
三一重工门户/商业智能项目培训文档
7、Connector的配置:
8、建别名,测试连接。
9、建iview,page,workset,role
jil@neusoft.com
三一重工门户/商业智能项目培训文档
选择SAP Transaction iView类型
选择sap gui类型
选择建立的系统并输入Tcode,如下:
测试
在R3和EP中建test用户(用户名必须一样)
在system的permission中加入这个用户,并把刚建立的role分配给这个用户。 用test用户登录portal,浏览到刚分配的role,单点登陆到R3的Web GUI。 效果
jil@neusoft.com
三一重工门户/商业智能项目培训文档
jil@neusoft.com
三一重工门户/商业智能项目培训文档
5利用SAP Logon Ticket集成.Net系统 5.1原理与流程
1、 用户登录门户,门户在LDAP里检索用户名和密码。
2、 如果用户合法,Portal服务器在客户端的浏览器里存贮一个Cookie作为登录的凭票
(Logon Ticket)。
3、 点击业务系统的按钮,业务系统的登陆模块从浏览器里读取用户的Cookie,通过解析算
法解析加密的Cookie内容,获得登录用户的用户名,从而完成后继的应用系统登录工作。
5.2实施过程
导入Par包
用管理员身份登陆portal,依次选择System administration->support->Support desk->portal runtime->Administration Console
根据par包所在的路径选择com.sap.portal.howtos.webapp.par包,并upload;如下图:
jil@neusoft.com
三一重工门户/商业智能项目培训文档
创建SSO需要的系统和iView
1、New a system for the Web Application: jil@neusoft.com
三一重工门户/商业智能项目培训文档
2、System Definition
注意:URI of web application的值就是处理登录逻辑的页面的位置,后面的工作就是改写这个页面。
3、User Management Configuration
jil@neusoft.com
三一重工门户/商业智能项目培训文档
注意:Logon method一定要修改成SAPLOGONTICKET
4、New an Alia name for the system
5、Create a New iView
jil@neusoft.com
三一重工门户/商业智能项目培训文档
jil@neusoft.com
三一重工门户/商业智能项目培训文档
ASP.NET首页登录模块的修改
1、 获得cookie
SAP门户发送到客户端的Cookie名称是“MYSAPSSO2”,这个Cookie是隐藏的,只有把这个页面部署在Portal里之后,才可以读到Cookie。读取Cookie的示例代码:
-------------------------------------------------------------------------------------------------- Cookie[] all_Cookies = request.getCookies(); String ticket = \ int i = 0;
if(all_Cookies==null) out.println(\ else{
for(i=0;i
if(\ ticket = all_Cookies[i].getValue(); break; } }
}
-------------------------------------------------------------------------------------------------- 获得ticket的值以后,由后台的程序进行解析。
2、 解析cookie的值
解析需要的材料:
jil@neusoft.com
三一重工门户/商业智能项目培训文档
(1) 两个动态链接库:
sapssoext.dll 需要在windows环境下注册,命令:regsvr32 sapssoext.dll。 sapsecu.dll 和解析类放在同一个目录下。 (2) 门户的证书:
解析算法需要利用门户导出的证书作为解析时的公钥。
导出位置:System Administration?System Configuration?KeyStore Administration 下载.pse格式的证书,保存在本地,供使用。
解析方法示意:
public Object[] evalLogonTicket(string ticket, string pab, string pab_password) {
Object[] parms = { ticket, pab, pab_password }; // invoke the main method to check the ticket if(MyType==null)
return new Object[7]; else
return (Object[])MyType.InvokeMember(\, System.Reflection.BindingFlags.InvokeMethod,null,MyObj,parms);
}
详细解析方法,见ssosample.cs
jil@neusoft.com
三一重工门户/商业智能项目培训文档
解析结果
jil@neusoft.com
三一重工门户/商业智能项目培训文档
6利用SAP Logon Ticket集成J2EE系统 6.1原理与流程
原理与流程与集成.Net系统类似。
6.2实施过程
上传par包并建系统
用管理员身份登陆portal,依次选择System administration->support->Support desk->portal runtime->Administration Console,根据par包所在的路径选择com.sap.portal.howtos.webapp.par包,并upload;如下图:
根据par包建系统
根据刚才上传的par包建立system,并根据J2EE Application相应的路径配置参数; 需配置的主要参数:
Name of server: j2eetest.neusoft.com Port number: 8888(我的Tomcat端口) URI:/ticket/MyJsp.jsp
Logon Method: SAPLOGONTICKET User Mapping Type: admin,user Http Request Method:HTTP post 如下图:
jil@neusoft.com
三一重工门户/商业智能项目培训文档
建系统别名,配置permission
利用系统建iView
选择“New From Portal Archive” 创建iView
选择portal application “com.sap.portal.appintegrator.sap” 选择”Generic”,然后”Next”; iView属性设置
System: 刚才建的系统的别名
URL template:
URL Template fragment for Single sign-on (sso2) : MYSAPSSO2=
J2EE Application服务器端获取SSO2Ticket
Cookie[] all_Cookies = request.getCookies(); String ticket = \ int i = 0;
if(all_Cookies==null)
out.println(\ else{
for(i=0;i
if(\ ticket = all_Cookies[i].getValue();
jil@neusoft.com
三一重工门户/商业智能项目培训文档
break; } } }
解析需要的材料
Dll文件:sapsecu.dll、sapssoext.dll文件(SAP提供)提供SAP解析算法。 verify.pse文件,portal中keystore中下载,公钥文件 SSO2Ticket类,调用dll文件完成解析。(已实现此类) 调用SSO2Ticket类中的方法解析ticket
SSO2Ticket ticketParse=new SSO2Ticket(); ticketParse.parseTicket(ticket); 获取用户名
ticketParse.getUser(); ticketParse.getPortalusr()
注:SSO2Ticket类已经完成,直接调用即可。
解析结果
jil@neusoft.com
三一重工门户/商业智能项目培训文档
break; } } }
解析需要的材料
Dll文件:sapsecu.dll、sapssoext.dll文件(SAP提供)提供SAP解析算法。 verify.pse文件,portal中keystore中下载,公钥文件 SSO2Ticket类,调用dll文件完成解析。(已实现此类) 调用SSO2Ticket类中的方法解析ticket
SSO2Ticket ticketParse=new SSO2Ticket(); ticketParse.parseTicket(ticket); 获取用户名
ticketParse.getUser(); ticketParse.getPortalusr()
注:SSO2Ticket类已经完成,直接调用即可。
解析结果
jil@neusoft.com
正在阅读:
基于SAP NetWeaver EP的单点登录(SSO)06-03
2010年考研英语真题英译汉分析及答案06-09
电动汽车储能源集中分布式数据采集系统05-30
逸涛半岛三期嘉苑P、O、N栋小高层施工组织设计(方案)11-16
第七讲 如何与接待家庭相处06-01
2019年小学班主任工作计划1000字04-22
四川省射洪县射洪中学高中语文 第四专题版块一《金岳霖先生》教案 苏教版必修212-02
圆柱体积一课堂资源卷样例05-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单点
- NetWeaver
- 基于
- 登录
- SAP
- SSO
- 1978年开始的风景 山西历年高考状元近况
- 3ds+max常用命令英汉互译 doc
- 毕业设计(论文) 单层双跨工业厂房结构设计
- 复杂曲面的测量技术研究
- 最新北师大版八年级英语上册Unit2 Teams同步练习含答案
- 电力系统分析练习题及其答案
- 浙江大学Java语言程序设计实验答案全集
- 大一高数期末考试题(精doc
- 新概念英语(青少版)1A L1-L16 试卷
- 充电工岗位责任制
- 高中研究性学习课题参考
- XX三年级英语下册第2单元集体备课教案
- 大学化学复习第二章
- 结构设计强规(修复的) - 图文
- 2013年重庆房地产市场1-6月上半年分析20131023 - 图文
- 初中音乐 蓝色的探戈教案
- 甘肃某煤矿主斜井皮带系统改造土建工程及安装工程施工组织设计
- 2018年省质检(一)信息技术试卷
- 中南大学 软件学院 编译原理实验报告2
- 开展综治网格化管理工作的实施方案