ibm tivoli_带有Tivoli Access Manager的SAP NetWeaver Application Server ABAP的单点登录

ibm tivoli

随着SAP NetWeaver平台的问世,SAP技术支持需要有关新SAP组件(包括SAP NetWeaver Application Server)的知识。 SAP NetWeaver Application Server有两种版本:ABAP和Java,也可以将两者结合使用。 SAP NetWeaver应用服务器ABAP(AS-ABAP)专为使用SAP众所周知的ABAP代码编写的应用程序而设计。 另一方面,SAP NetWeaver Application Server Java旨在利用Java世界中新兴的开放标准。 两种风格都在HTTP空间中发挥作用。 因此,这很好地使Tivoli Access Manager(TAM)WebSEAL可以为两种产品提供单点登录(SSO)解决方案。

用于AS-JavaWebSEAL SSO解决方案易于配置且易于管理。 但是, 针对AS-ABAPWebSEAL SSO解决方案要求使用TAM全局登录(GSO)密码箱,因为它现在允许使用基于信任的SSO方法,除非使用SAP登录票证。 当同时使用AS-ABAP和AS-Java时,使用GSO密码箱的要求变得繁琐,因为它添加了另一个需要密码同步和管理的用户注册表。

本文介绍如何为AS-ABAP配置WebSEAL SSO的方法,该方法不依赖于GSO密码箱,而是使用从WebSEAL SSO解决方案为AS-Java生成的SAP登录票证。

情境

考虑一个使用AS-ABAP和AS-Java部署SAP应用程序的环境。 例如,在客户部署了使用ABAP技术编写的SAP CRM和使用AS-Java技术编写的SAP Enterprise Portal的情况下,这是一种可能的情况。

给定基于信任的AS-ABAP环境中SSO选项的局限性,身份和访问管理管理员(admin)需要配置TAM GSO密码箱,以便向AS-ABAP提供登录凭据。 如图1所示。请注意在GSO Lockbox和SAP User Registry之间同步用户名和密码的要求。

图1.使用GSO从SSO到AS-ABAP和AS-Java。
从SSO到AS-ABAP和AS-Java
  1. 用户通过WebSEAL请求AS-ABAP资源。 如果需要,将认证凭证提供给WebSEAL。
  2. 成功进行WebSEAL认证后,WebSEAL将从GSO密码箱检索用户的AS-ABAP凭证。
  3. 使用基本身份验证将AS-ABAP凭据发送到AS-ABAP。
  4. AS-ABAP使用通过BA标头发送的凭据,根据SAP用户注册表(例如SAP DB)对用户进行身份验证。
  5. 成功进行AS-ABAP身份验证后,将向用户提供请求的AS-ABAP内容以及SAP登录票证。
  6. 以后,可以使用SAP登录票证向AS-Java进行身份验证。

为了避免使用GSO密码箱以及将GSO密码箱与SAP用户注册表同步的要求,管理员可以配置WebSEAL“身份验证重定向”以强制用户先按顺序访问AS-Java应用程序获得登录票。 AS-ABAP应用程序将被配置用于登录票证验证,并且将从AS-Java向用户提供指向AS-ABAP应用程序的链接。 AS-ABAP应用程序中的身份验证将使用为AS-Java获得的登录票进行。 图2提供了此配置的说明。

图2.使用可见重定向但不使用GSO的SSO到AS-ABAP和AS-Java。
使用可见性重定向但不使用GSO的SSO到AS-ABAP和AS-Java
  1. 用户通过WebSEAL请求AS-ABAP资源。 认证凭证提供给WebSEAL。
  2. 成功进行WebSEAL认证后,WebSEAL会将浏览器重定向到AS-Java应用程序,以获得SAP登录票证。
  3. 浏览器将自动遵循从WebSEAL进行的重定向。
  4. WebSEAL接收对AS-Java资源的请求,并以称为“ iv-user”的HTTP标头的形式发送已认证用户的用户名。
  5. AS-Java接收请求,并在SAP用户注册表中验证用户的存在。
  6. 成功验证后,将向用户提供SAP登录票证和AS-Java应用程序中的内容。
  7. 可能造成混淆,用户再次请求AS-ABAP资源。 这一次,WebSEAL不会重定向请求,因为用户已经通过认证。
  8. 对AS-ABAP资源的请求将传递到AS-ABAP服务器。 该请求包含由AS-Java生成的SAP登录票证。
  9. SAP登录票证用于验证用户。
  10. 成功认证后,将为用户提供所请求的内容。

不幸的是,尽管我们减轻了管理员管理GSO密码箱的负担,但是当某些用户在身份验证后不断重定向到另一个应用程序而不是所请求的应用程序时,这种情况可能会使他们感到困惑。

理想的解决方案使用户可以访问所需的SAP应用程序(无论它位于AS-ABAP系统还是AS-Java系统上),而且除了消除管理GSO密码箱的要求外,也不会造成重定向的混乱。 幸运的是,这种理想的解决方案是可行且可行的。 该解决方案利用HTTP规范从AS-Java生成SAP登录凭单,以供AS-ABAP使用-以用户不可见的方式。 该解决方案的概述如图3所示。

图3.没有可见的重定向,也没有使用GSO的SSO到AS-ABAP和AS-Java。
SSO到AS-ABAP和AS-Java,无需可见的重定向,也无需使用GSO
  1. 用户通过WebSEAL请求AS-ABAP资源。 认证凭证提供给WebSEAL。
  2. 成功进行WebSEAL认证后,WebSEAL使用一个页面重定向浏览器,该页面既包含指向AS-Java上隐藏图像的链接,又包含指向所请求资源的重定向。 通过包含到AS-Java的链接,浏览器将获取SAP登录票证。
  3. 浏览器自动请求隐藏的图像
  4. WebSEAL接收对AS-Java图像资源的请求,并以称为“ iv-user”的HTTP标头的形式发送已认证用户的用户名。
  5. AS-Java接收请求,并在SAP用户注册表中验证用户的存在。
  6. 成功验证后,将为用户提供SAP登录票证和所请求(隐藏)的图像。
  7. 此时,浏览器将自动跟随重定向到AS-ABAP应用程序。 这一次,WebSEAL不会重定向请求,因为用户已经通过认证。
  8. 对AS-ABAP资源的请求将传递到AS-ABAP服务器。 该请求包含由AS-Java生成的SAP登录票证。
  9. SAP登录票证用于验证用户。
  10. 成功认证后,将为用户提供所请求的内容。

本文的其余部分描述了如何配置软件组件以支持上述解决方案。

配置Tivoli Access Manager WebSEAL

本部分提供配置Tivoli Access Manager WebSEAL所需的步骤。

配置身份验证重定向

执行以下操作来配置WebSEAL,以指示浏览器在成功认证后重定向到请求的资源之前,先检索浏览器的SAP登录票证:

  1. 打开WebSEAL配置文件。 例如,对于默认安装的WebSEAL,配置文件位于WebSEAL_root /etc/webseald-default.conf中。
  2. [acnt-mgt]节中,找到login-redirect-page参数。
  3. login-redirect-page参数设置为/redirect.html
  4. [enable-redirects]节中,启用适当的认证机制。 例如,在使用表单身份验证时,请确保将redirect参数设置为forms-auth
  5. [server]节中,找到process-root-requests参数。
  6. process-root-requests参数设置为filteralways
  7. 如果process-root-requests参数设置为always ,请确保在process-root-filter节中添加了一个条目。 例如, root = /redirect.html
  8. 重新启动WebSEAL以影响上述更改。

概括而言,配置文件应包含清单1所示的设置。

清单1. WebSEAL配置设置。
[acnt-mgt]
    ...
    login-redirect-page = /redirect.html

    [enable-redirects]
    redirect = forms-auth

    [server]
    ...
    process-root-requests = filter

    [process-root-filter]
    root = /redirect.html

修改WebSEAL登录页面

执行以下操作来修改WebSEAL登录页面以捕获请求的URL:

  1. 在WebSEAL lib目录中找到WebSEAL登录页面模板。 例如,对于默认安装的WebSEAL,lib目录位于: WebSEAL_root / www-default / lib / html / 语言 (其中英语为“ C”)。
  2. 修改文件以包含清单2中提供JavaScript。
清单2.重定向页面。
<script>
    document.cookie = 'RedirectURL=%HTTP_BASE%%URL%';
    </script>

创建重定向页面

执行以下操作来创建WebSEAL认证后返回的重定向页面:

  1. 在WebSEAL“ docs”目录中创建一个名为redirect.html的新文件。 例如,对于默认安装的WebSEAL,“ docs”目录位于: WebSEAL_root / www-default / docs。
  2. 修改文件以包含清单3中提供HTML。
清单3.重定向页面。
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="-1">
    
    <title></title>
    </head>
    
    <script language="javascript" src="cookieFunctions.js">
    </script>

    <script language="javascript">
    function redirect()
    {
    	var default_redirectURL = "/index.html";
    	var redirectURL = getCookie("RedirectURL");
    	deleteCookie("RedirectURL");

    	document.location = (redirectURL != null && redirectURL != '' ? 
    	    	redirectURL : default_referrer);
    }
    </script>
    
    <frameset rows="0%" onLoad=redirect()>
    	<frame name="a" src="/sapasjava/SSOTicket/index.html">
    </frameset>
    </html>

创建WebSEAL联结

WebSEAL要求为每个应用程序服务器创建一个联结,即AS-Java联结和AS-ABAP联结。

下一节“ 将SSO配置到SSO票证生成应用程序 ”提供了指向集成指南的链接,该指南指定了有关如何创建与AS-Java的联结的详细信息。 创建联结时,请确保联结名称与redirect.html文件中使用的值匹配。 使用上面提供的示例列表,该结/sapasjava称为/sapasjava

除了连接到Web界面所需的设置外,与AS-ABAP的连接不需要任何特定设置。 WebSEAL配置选项(使用webseald- instance .conf配置)将取决于在AS-ABAP服务器上访问的应用程序,有关此主题的讨论不在本文讨论范围之内。 测试配置中提供的示例假设结点称为/sapasabap

配置SAP NetWeaver Application Server Java

本部分提供了配置AS-Java接受从WebSEAL传递​​的包含已认证用户的HTTP标头以生成SAP登录票证所需的信息。

部署SSO票证生成应用程序

为了使AS-JAVA生成SAP登录票,经过身份验证的用户必须访问在AS-Java上部署的受保护应用程序。 可以使用现有受保护的应用程序通过引用其映像之一来完成此操作。 该应用程序要求允许每个人角色访问参考图像。 另外,本文还提供了一个简单的应用程序SSOTicket.ear(由SSOTicket.zip提供),它适合与本文前面创建的重定向页面一起使用。 这个简单的应用程序包含一个名为1x1.gif的图像,可通过重定向页面进行访问。 仅限所有人组访问该图像。 这要求用户通过AS-Java进行身份验证,从而使我们能够利用成功身份验证时生成的SAP登录票证(如下所示)。

在SAP Visual Administrator中执行以下步骤以部署简单应用程序:

  1. 展开服务器 -部署。
  2. 单击部署和开始按钮。
  3. 在“ 文件”编辑控件中,输入简单应用程序SSOTicket.ear的完整位置和名称。
  4. 单击确定
  5. 如果您收到有关部署位置的警告消息,请单击确定
  6. 在“ 部署”对话框中 ,单击“ 确定” 。 现在,该简单应用程序将部署到AS-Java。
  7. 要确认成功部署,请将Deployed Components视图更改为Application
  8. 在已部署组件的列表中,找到sap.com/SSOTicketEar的条目。 该应用程序应启动。 如果没有,请单击“ 启动应用程序”按钮。

部署应用程序后,尝试使用浏览器访问映像。 通过URL访问该图像: http:// as-java:port /SSOTicket/1x1.gif 。 成功通过身份验证后,您会收到提示进行身份验证的提示,并显示空白页面。

配置SSO到SSO票证生成应用程序

IBM提供了一个集成软件包,其中包含有关如何在WebSEAL和AS-Java之间配置SSO的信息。 遵循集成指南中概述的每个步骤,以在WebSEAL和上一步中部署的票证生成应用程序之间配置SSO。

总结集成过程:

  • WebSEAL配置有与AS-Java的联结。 联结在HTTP标头中将TAM认证的用户标识提供给AS-Java。
  • AS-Java配置有J2EE LoginModule来读取HTTP标头,并使用SAP用户管理引擎(UME)验证用户ID。
  • 成功验证之后,将向浏览器提供MYSAPSSO2 cookie,即SAP登录票证。

检查cookie列表,以确保在测试集成时提供了MYSAPSSO2 cookie。

配置SAP NetWeaver Application Server ABAP

本节提供有关如何配置AS-ABAP以接受AS-Java生成的SAP登录票证的信息。

使用AS-Java配置信任

必须将AS-ABAP配置为信任由AS-Java生成的SAP登录票证。 通过将AS-Java服务器证书加载到AS-ABAP的证书列表和ACL中,使用STRUSTSSO2事务来完成此操作。 有关如何配置信任关系的详细信息,请参考SAP库

测试配置

要测试配置是否成功,只需通过WebSEAL访问AS-ABAP应用程序。 在对WebSEAL进行认证之后,您的浏览器应显示AS-ABAP应用程序,而无需进一步的认证。

例如,打开浏览器并导航到HTML(webgui)应用程序的SAP GUI:http:// webseal_fqdn / sapasabap / sap / bc / gui / sap / its / webgui /!。


翻译自: https://www.ibm.com/developerworks/tivoli/library/t-ssosapnwas/index.html

ibm tivoli

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值