基于SAP NetWeaver EP的单点登录Word格式文档下载.docx
- 文档编号:21727746
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:644.73KB
基于SAP NetWeaver EP的单点登录Word格式文档下载.docx
《基于SAP NetWeaver EP的单点登录Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于SAP NetWeaver EP的单点登录Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
用户存储策略:
SAP的企业门户只能为每个登陆用户建立一个存放用户信息的Cookie,所以当采用SAPLogonTicket这种方式来连接多个后台系统时,先决条件是所有的这些系统必须要有一个相同的用户存储(在门户系统项目中,统一用户存储将是一个项目的难点)。
使用登陆票来实现单点登陆最简单的场景是:
门户系统的用户名与各后台系统的用户名相同。
与用户映射的冲突:
某些SAP开发框架,例如BSP,支持SAPLogonTicket或者UserMapping,一个后端系统一旦采用了SAPLogonTicketcookie来传送用户信息就不能使用UserMapping。
原因是一个采用相同用户名来建Session,一个是不一样的用户名。
3.2UserMapping
用户映射是一种单点登录的实现方式,它的实现过程是portal服务器向后台系统传递用户名和密码,从而完成登录过程。
当连接到web应用系统时,用户映射意味着通过请求的POST或GET方法传递用户名和密码。
有两种主要的用户映射实现方法——单独的用户映射和一般的用户映射
单独的用户映射
单独的用户映射中每个Portal用户被指定到一个唯一的后台系统用户。
用户自己或管理员都可以完成指定。
一般的用户映射
一般的用户映射中多个用户被映射到一个后台系统的用户。
用这种方法时,为了避免多个用户用同一个后台系统用户而产生冲突,通常由管理员来维护用户名和密码的映射。
用户映射的好处和优点
最小的技术调整:
只要后台系统能从请求中接受用户名和密码,就不需要在后台系统上做任何配置。
在portal端,也只需很少的配置,只需要创建一个系统对象并选好用户映射类型(“UIDPW”代表用户名和密码)。
简化后台用户管理(用一般用户映射时):
用凭票方式实现单点登录,需要后台系统管理所有可能登录进该系统的用户。
这可能需要在后台系统中创建成千上万个与portal系统对应的用户。
在这种情况下,用后台系统中的几个一般性的用户来代表几种不同访问权限,而不需要为每个Portal用户建立单独的用户将更有吸引力。
举个例子,假设后台系统有两种显示数据的级别——经理和员工。
用一般性用户映射时,只需要建立两个后台系统的用户——用户“经理”和用户“员工”。
每个portal用户映射到这两个用户之一。
这种方法简化了后台系统的用户管理(只需管理两个用户)。
缺点和局限性
映射的维护量大:
需要在portal系统中维护后台系统的用户名/密码。
这个维护的工作量可能比较大,比如假如后台系统的密码需要每个月换一次,则portal里也需要做相应的修改。
此外,如果允许用户维护自己的用户映射属性,就需要成立一个支持团队来处理用户锁定、忘记密码等情况。
安全:
portal中存储密码始终是一个安全隐患。
在两个地方(portal和后台系统中)维护密码也是不安全的。
另外,用户映射方式在网路上传输用户名和密码到后台系统,在网络上也可能监听到密码。
用户映射需要的扩展或工作方式
安全通信:
当使用用户映射方式时必须强制使用SSL和后台系统进行通信,否则密码会被完全暴露给网上进行监听的不怀好意的人。
基于组或角色的映射:
映射portal中的组或角色到后台系统会减少管理员的工作量。
尽管如此,需要指出的是用户映射不容易管理,同时只要一个用户能管理自己用户映射到单个系统,他就能对portal中所有被映射的系统进行管理。
改进的个性化:
SAPPortal为每个可以进行用户映射的用户提供了标准的个性化窗口。
但是,个性化工具有一个明显的缺点:
需要用户知道portal中的系统别名和后台系统的关系。
在广泛使用用户映射,并且以上描述情况很可能会发生的情况下,建议创建一个可以被用来为特别系统处理用户映射的定制iView。
这个iView可以嵌进相关的workset,因此最终用户会更加清楚他正在管理的是什么用户映射。
从技术的角度,上面所描述的iView只需要简单地使用UME(用户管理引擎)的API。
API提供了的storeLogonData方法,提供了存储用户映射数据到UME的功能。
开发手册参见:
4利用SAPLogonTicket集成SAPECC系统
原理与流程
SAP登录票据代表着用户的有效令牌,它在用户成功登陆portal之后产生。
它是以cookie的形式存在于客户机的浏览器端,客户机的每一次请求它都会被发送。
SAP登录票据存储了登录用户的验证信息,但是并不存储用户的密码。
SAPLogonTicket包含以下信息:
有效期、发布系统、发布系统的数字签名、portalID、UserID。
LogonTicket方式实现登录过程的流程:
登录过程:
门户本身作为生成票据的服务器,运作的原理如下:
Portal服务器第一次启动的时候,它会生成一对密钥,其中私钥用于登录票据的生成,公钥用于票据的解析,所以需要在portal里下载公钥文件并拷贝到J2EE服务器上。
登录流程:
用户凭用户名、密码登录Portal
Portal的用户管理引擎在存储用户的数据库或LDAP服务器上验证用户的登录信息。
3、验证成功后,Portal生成票据(LogonTicket),并存储到用户的浏览器的cookie中
4、用户凭票登录SAP或非SAP系统
5、SAP系统和某些非SAP系统提供LogonTicket的解析机制,某些不提供Logon
Ticket解析机制的非SAP系统需要编程来解析出用户名,并到自己的用户中去查询是否有这个用户,如果有这用这个用户登录,若没有,则登录失败,显示登陆界面。
系统要求:
SAPNetWeaverEnterprisePortal6.40sp9以上
验证ITS和ICM配置
用T-CodeRZ11和SITSPMON察看集成ITS的状态。
用http:
//R:
8002/sap/public/ping检测设置的正确性(如果不能ping通,首先察看/sap/public/ping服务有没有激活,若没有,用事务SICF)
激活并发布WebGUI服务
激活ICF服务
SAPGUI登陆进R3系统,执行事务SICF并定位到/sap/public/bc/its/mines和/sap/bc/gui/sap/its/webgui,右击并选择激活服务。
发布IAC服务
进入事务SE80,定位到Utilities-〉Setting-〉InternetTransactionServer(Tab)-〉Publish(Tab),设置SelectedSite为”INTERNAL”.
发布SYSTEM和WEBGUI
在InternetServices中定位到SYSTEM和WEBGUI,右击选择Publish-〉CompleteService
验证WebGUI服务
//R:
8002/sap/bc/gui/sap/its/gui登陆webgui。
如果登陆不能成功,注意两点事项:
是否在同一个域下
可能R3kernel版本过低
EP和R3配置的详细步骤
1、导出portal的证书
用管理员身份登陆EP,navigate到SystemAdministration-〉SystemConfiguration-〉KeystoreAdministration,在contenttab中选择SAPLogonTicketpair-cert(默认),选择Downloadverify.derFile,并存到本地。
2、导入portal的证书到R3系统
运行事务/nstrustsso2,在Certificatesection部分,选择Importcertificate,浏览到从portal中导出的证书verify.der。
选择“AddtoCertificateList”
选择“AddtoACL”
填写相应的Portal名和SystemID(systemID就是Portal系统的SID,Client根据PortalUME中一个叫““的参数的值来设置)
3、插入相应的参数到R3系统
运行事务/nRZ10,选择ProfileBrowse,选择InstanceProfile。
选择Change,确保login/create_sso2_ticket=2,login/accept_sso2_ticket=1,如果没有这两个参数,需手动加入。
4、在portal中建立系统,配置相应的参数
SystemAdministration->
SystemConfiguration->
Systemlandscape,右击PortalContent,建立System文件夹,并在文件夹下建立SAPsystemusingdedicatedapplicationserver的系统。
5、系统中ITS的配置
6、配置usermanagement:
7、Connector的配置:
8、建别名,测试连接。
9、建iview,page,workset,role
选择SAPTransactioniView类型
选择sapgui类型
选择建立的系统并输入Tcode,如下:
测试
在R3和EP中建test用户(用户名必须一样)
在system的permission中加入这个用户,并把刚建立的role分配给这个用户。
用test用户登录portal,浏览到刚分配的role,单点登陆到R3的WebGUI。
效果
5利用SAPLogonTicket集成.Net系统
1、用户登录门户,门户在LDAP里检索用户名和密码。
2、如果用户合法,Portal服务器在客户端的浏览器里存贮一个Cookie作为登录的凭票(LogonTicket)。
3、点击业务系统的按钮,业务系统的登陆模块从浏览器里读取用户的Cookie,通过解析算法解析加密的Cookie内容,获得登录用户的用户名,从而完成后继的应用系统登录工作。
导入Par包
用管理员身份登陆portal,依次选择Systemadministration->
support->
Supportdesk->
portalruntime->
AdministrationConsole
根据par包所在的路径选择com.sap.portal.howtos.webapp.par包,并upload;
如下图:
创建SSO需要的系统和iView
1、NewasystemfortheWebApplication:
2、SystemDefinition
注意:
URIofwebapplication的值就是处理登录逻辑的页面的位置,后面的工作就是改写这个页面。
3、UserManagementConfiguration
Logonmethod一定要修改成SAPLOGONTICKET
4、NewanAlianameforthesystem
5、CreateaNewiView
1、获得cookie
SAP门户发送到客户端的Cookie名称是“MYSAPSSO2”,这个Cookie是隐藏的,只有把这个页面部署在Portal里之后,才可以读到Cookie。
读取Cookie的示例代码:
--------------------------------------------------------------------------------------------------
Cookie[]all_Cookies=request.getCookies();
Stringticket="
"
;
inti=0;
if(all_Cookies==null)
out.println("
all_Cookies==null"
);
else{
for(i=0;
i<
all_Cookies.length;
i++){
if("
MYSAPSSO2"
.equals(all_Cookies[i].getName())){
ticket=all_Cookies[i].getValue();
break;
}
获得ticket的值以后,由后台的程序进行解析。
2、解析cookie的值
解析需要的材料:
(1)两个动态链接库:
需要在windows环境下注册,命令:
。
和解析类放在同一个目录下。
(2)门户的证书:
解析算法需要利用门户导出的证书作为解析时的公钥。
导出位置:
SystemAdministration→SystemConfiguration→KeyStoreAdministration
下载.pse格式的证书,保存在本地,供使用。
解析方法示意:
publicObject[]evalLogonTicket(stringticket,stringpab,stringpab_password)
{
Object[]parms={ticket,pab,pab_password};
//invokethemainmethodtochecktheticket
if(MyType==null)
returnnewObject[7];
else
return(Object[])MyType.InvokeMember("
EvalLogonTicket"
System.Reflection.BindingFlags.InvokeMethod,null,MyObj,parms);
解析结果
6利用SAPLogonTicket集成J2EE系统
上传par包并建系统
AdministrationConsole,根据par包所在的路径选择com.sap.portal.howtos.webapp.par包,并upload;
根据par包建系统
根据刚才上传的par包建立system,并根据J2EEApplication相应的路径配置参数;
需配置的主要参数:
Portnumber:
8888(我的Tomcat端口)
LogonMethod:
SAPLOGONTICKET
UserMappingType:
admin,user
HttpRequestMethod:
HTTPpost
建系统别名,配置permission
利用系统建iView
选择“NewFromPortalArchive”创建iView
选择portalapplication“”
选择”Generic”,然后”Next”;
iView属性设置
System:
刚才建的系统的别名
URLtemplate:
<
System.protocol>
:
//<
System.server>
System.port>
System.uri>
?
Authentication>
URLTemplatefragmentforSinglesign-on(sso2):
MYSAPSSO2=<
Request.SSO2Ticket>
J2EEApplication服务器端获取SSO2Ticket
解析需要的材料
Dll文件:
sapsecu.dll、sapssoext.dll文件(SAP提供)提供SAP解析算法。
verify.pse文件,portal中keystore中下载,公钥文件
SSO2Ticket类,调用dll文件完成解析。
(已实现此类)
调用SSO2Ticket类中的方法解析ticket
SSO2TicketticketParse=newSSO2Ticket();
ticketParse.parseTicket(ticket);
获取用户名
ticketParse.getUser();
ticketParse.getPortalusr()
注:
SSO2Ticket类已经完成,直接调用即可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于SAP NetWeaver EP的单点登录 基于 SAP EP 单点 登录