标签归档:EBS

Oracle的单点登录解决方案(Single Sign-On Solution)

        Single Sign-On(SSO)即单点登录,在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。在此条件下,管理员无需修改或干涉用户登录就能方便的实施希望得到的安全控制。

        Oracle现有两套单点登录的解决方案:Oracle Access Manager,Oracle Single Sign-On Server (OSSO)。
Oracle官方推荐Access Manager作为SSO的解决方案,Oracle Single Sign-On Server的高级用户最终也会建议迁移到Oracle Access Manager解决方案上。

(来源:Note 1461465.2 – Information Center: Overview EBS Technology Stack OID and SSO and OAM)

OAM SSO实现方式有两种:一种是通过OAM Agent(WebGate),另外一种是使用OSSO Agents(mod_osso)

1.) 使用OAM Agent(WebGate代理),然后和Oracle E-Business Suite Access Gate集成(此处以EBS为例).

WebGate是Web服务器的一个插件,用于拦截HTTP请求,并把请求导向Oracle Access Manager (OAM)来获取用户认证。

OAM SSO登陆的过程描述:

When a user tries to access a protected application, the request is received by OAM which checks for the existence of the SSO cookie.

After authenticating the user and setting up the user context and token, OAM sets the SSO cookie and encrypts the cookie with the SSO Server key (which can be decrypted only by the SSO Engine).

Depending on the actions (responses in OAM 11g) specified for authentication success and authentication failure, the user may be redirected to a specific URL, or user information might be passed on to other applications through a header variable or a cookie value.

Based on the authorization policy and results of the check, the user is allowed or denied access to the requested content. If the user is denied access, she is redirected to another URL (specified by the administrator in Webgate registration).

可以看到,Oracle OAM通过Cookie存储用户的信息,进而通过Cookie来实现单点访问授信站点。

2.) 使用mod_osso代理,这种方法只适用于从Oracle Single Sign-On Server 10gR3升级上来的用户。

详细见:About SSO Log In Processing with OAM Agents中的“About SSO Login Log In Processing with OSSO Agents (mod_osso)”

关于Cookie

Cookies就是服务器暂存放在你的电脑里的资料( 用户ID,密码、浏览过的网页、停留的时间等信息),好让服务器用来辨认你的计算机。 当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookies 会帮你在网站上一些内容都记录下来。当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会 依据Cookie里的内容来判断使用者,送出特定的网页内容给你。 一般来说,Cookie通过HTTP Headers从服务器端返回到浏览器上。IE Cookies 文件夹路径保存于注册表:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cookies

See Also:

Oracle LDAP解决方案 – Oracle Identity and Access Management Suite :http://blog.csdn.net/pan_tian/article/details/20927733

About SSO Log In Processing with OAM Agents

Overview of Single Sign-On Integration Options for Oracle E-Business Suite [ID 1388152.1]
Integrating Oracle E-Business Suite Release 11i with Oracle Access Manager 11gR2 (11.1.2) using Oracle E-Business Suite AccessGate [ID 1536941.1]

Oracle Access Manager 11.1.2 Certified with E-Business Suite 12 

Oracle Access Manager 11.1.2 Certified With E-Business Suite 11i
Introduction to Installing WebGates

转载自:http://blog.csdn.net/pan_tian/article/details/8691726

Oracle EBS R12.2版本更改apps密码

Oracle ebs12版本中,12.1和12.2更改密码有比较大的变化,以下是12.2变更的操作系统层的命令,以下是官方文档:

R12.2: Steps to Change the APPS, APPLSYS, and APPS_NE Password Using FNDCPASS or AFPASSWD (文档 ID 1674462.1)

–具体命令如下

su – appldev
cd $INST_TOP/admin/scripts
./adstpall apps/apps;
[appldev@devfin scripts]$ FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS xxxxxx
Log filename : L510975.log


Report filename : O510975.out
[appldev@devfin scripts]$ cat L510975.log
+—————————————————————————+
Application Object Library: Version : 12.2

Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.

FNDCPASS: 
+—————————————————————————+

Current system time is 17-JAN-2018 10:29:36

+—————————————————————————+

Arguments
 
   FNDCPASS system/***** SYSTEM APPLSYS ***** 
+—————————————————————————-+
Working…

FNDCPASS completed successfully.

+—————————————————————————+
Concurrent request completed successfully
Current system time is 17-JAN-2018 10:29:37

+—————————————————————————+
[appldev@devfin scripts]$ ./adautocfg.sh
Enter the APPS user password:

The log file for this session is located at: /u01/DEV/app/fs1/inst/apps/DEV_devfin/admin/log/01171038/adconfig.log

AutoConfig is configuring the Applications environment…

AutoConfig will consider the custom templates if present.
        Using CONFIG_HOME location     : /u01/DEV/app/fs1/inst/apps/DEV_devfin
        Classpath                   : /u01/DEV/app/fs1/FMW_Home/Oracle_EBS-app1/shared-libs/ebs-appsborg/WEB-INF/lib/ebsAppsborgManifest.jar:/u01/DEV/app/fs1/EBSapps/comn/java/classes

        Using Context file          : /u01/DEV/app/fs1/inst/apps/DEV_devfin/appl/admin/DEV_devfin.xml

Context Value Management will now update the Context file

        Updating Context file…COMPLETED

        Attempting upload of Context file and templates to database…COMPLETED

Configuring templates from all of the product tops…
        Configuring AD_TOP……..COMPLETED
        Configuring FND_TOP…….COMPLETED
        Configuring ICX_TOP…….COMPLETED
        Configuring MSC_TOP…….COMPLETED
        Configuring IEO_TOP…….COMPLETED
        Configuring BIS_TOP…….COMPLETED
        Configuring CZ_TOP……..COMPLETED
        Configuring SHT_TOP…….COMPLETED
        Configuring AMS_TOP…….COMPLETED
        Configuring CCT_TOP…….COMPLETED
        Configuring WSH_TOP…….COMPLETED
        Configuring CLN_TOP…….COMPLETED
        Configuring OKE_TOP…….COMPLETED
        Configuring OKL_TOP…….COMPLETED
        Configuring OKS_TOP…….COMPLETED
        Configuring CSF_TOP…….COMPLETED
        Configuring IBY_TOP…….COMPLETED
        Configuring JTF_TOP…….COMPLETED
        Configuring MWA_TOP…….COMPLETED
        Configuring CN_TOP……..COMPLETED
        Configuring CSI_TOP…….COMPLETED
        Configuring WIP_TOP…….COMPLETED
        Configuring CSE_TOP…….COMPLETED
        Configuring EAM_TOP…….COMPLETED
        Configuring GMF_TOP…….COMPLETED
        Configuring PON_TOP…….COMPLETED
        Configuring FTE_TOP…….COMPLETED
        Configuring ONT_TOP…….COMPLETED
        Configuring AR_TOP……..COMPLETED
        Configuring AHL_TOP…….COMPLETED
        Configuring IES_TOP…….COMPLETED
        Configuring OZF_TOP…….COMPLETED
        Configuring CSD_TOP…….COMPLETED
        Configuring IGC_TOP…….COMPLETED

AutoConfig completed successfully.

[appldev@devfin scripts]$ ./adadminsrvctl.sh start

You are running adadminsrvctl.sh version 120.10.12020000.10

Enter the WebLogic Admin password:
Enter the APPS Schema password:
Starting WLS Admin Server…
Refer /u01/DEV/app/fs1/inst/apps/DEV_devfin/logs/appl/admin/log/adadminsrvctl.txt for details

AdminServer logs are located at /u01/DEV/app/fs1/FMW_Home/user_projects/domains/EBS_domain_DEV/servers/AdminServer/logs

adadminsrvctl.sh: exiting with status 0

adadminsrvctl.sh: check the logfile /u01/DEV/app/fs1/inst/apps/DEV_devfin/logs/appl/admin/log/adadminsrvctl.txt for more information …  


[appldev@devfin scripts]$ grep wls_adminport $CONTEXT_FILE
         <wls_adminport oa_var="s_wls_adminport" oa_type="PORT" base="7001" step="1" range="-1" label="WLS Admin Server Port">7009</wls_adminport>

–上面步骤完成后,通过前台页面去进行WLS层级的配置

http://xxxxx:7009/console
a. Log in to WLS Administration Console.
b. Click Lock & Edit in Change Center.
c. In the Domain Structure tree, expand Services, then select Data Sources.
d. On the "Summary of JDBC Data Sources" page, select EBSDataSource.
e. On the "Settings for EBSDataSource" page, select the Connection Pool tab.
f. Enter the new password in the "Password" field.
g. Enter the new password in the "Confirm Password" field.
h. Click Save.
i. Click Activate Changes in Change Center.


[appldev@devfin scripts]$ ./adstrtal.sh apps/xxxxxx

一条数据引发的“血案”

        情景:Oracle EBS系统批量付款

        现象:Oracle EBS系统批量付款卡死

        环境:Oracle EBS R12.1.1

    取名“一条数据引发的血案”是因为这次事件把自己的第二次通宵奉献出来了。

    直接进入主题:2016年4月21日周四,客户在财务系统内批量付款,这次付款从表面上看与往常的批量付款并无差异,92笔付款,量不算大,结果在最后一次鼠标点击确认的时候导致系统直接崩溃(只针对此功能页面,其他功能还是能正常操作)。如下图所示:

            点击应用    

            internal error

    一般涉及到付款的操作,一直都是需要十分谨慎的,要是因为付款抽盘数据错误,导致网银付款错误致使公司多付账款,将会造成不可挽回的错误。客户(刚进入公司的新同事)在第一时间找到我,焦急的心情从客户的表述中可以窥见一二。自己也是第一次遇到这样的错误,第一反应就是数据库表被锁了,因为之前也遇到过类似的错误,直接从后台解锁后即可解决问题。但是这次似乎并没有那么简单,后台并未锁表。于是,找到客户的纯数据库DBA检测,从后台的常规日志中可以看到“timeout”的描述,于是通过各种sql命令和linux命令穿梭于PLSQL和操作系统中(幸而能有同事提供生产环境的数据库)。然而,并没有解决,知道下班也并未有任何实质性的进展。于是,为了客户能在周五将今天的付款付出去,在已经格式化付款的状态,一条一条在付款撤销界面点击停止付款,大概统计了一下,这个步骤会超过500次鼠标点击(oracle做得太不智能了,吐槽一下),而且在这个过程中,还出现如下图所示的囧地,无法停止付款(后台解决,IBY_PAYMENTS_ALL表字段update).

            已提交打印

   由于感觉到事情的严重性,当天晚上到10点多仍然没有解决,于是乎觉得在办公室继续奋战,做到大概12点多,实在熬不起了,很久没有一直工作持续那么长时间,而且是脑袋一直不停的高速运作,在这过去的几个小时内,问过很多同行,大多都是没有好的建议,都建议再向EBS DBA咨询求助。晚上接近一点,睡觉(幸好办公室有张折叠床)。早上6点过几分,起床。继续查找问题,此时已经将昨天留下的92条中的78条数据付款(每次5条左右的数据批付款,也是倒霉,每次都没有碰到那天错误数据)。现在这个时候,最怕的就是客户的追问,不过第二天一早,客户的邮件就来了。客户希望在下午两点之前能解决问题。压力山大。为了能尽快解决问题,向公司申请EBS DBA资源,于是,公司提供一位DBA远程协助。经过20多分钟的排除,得出两个结论:第一,TCP SOCKET超时严重,排列超时第一位;第二,行级锁超时严重,排名超时第二位。DBA也只能做到这里了,但是此时时间已经是下午2点多,于是只能去跟客户解释,目前正在全力排查问题。客户也还好,也只能如此(其实我相信客户内心是崩溃的,两天时间已经积压了好几百万款项待付)。

    接下来是周六,本来是该好好休息的时间,结果因为这个事情,觉都睡不好,早上7点多就起来接着查问题。一上午还是没有比较实质性的进展,中午叫了外卖,下午还是继续排查。这之前跟领导甚至商议过如果找不出问题要怎么样先暂时解决问题(具体什么方法就不在此透露)。默默耕耘,必有回响。在晚上11点多的时候,也就是逐条付款的时候,界面上出现了一个比较直接的错误提示,违反唯一约束条件。如下图所示:

                唯一键

    于是,能80%确定是应用数据问题,结果果然发现,其中一个供应商的地点层竟然在失效后还多生成了一条付款数据,然后这在界面上看起并没有其他异样,结果从后台查看数据才发现此异象。表现如下图所示:

                失效地点层  

               同样付款数据

    此时,感觉修复此数据即可解决问题,于是对比正确的数据后,修复数据完成(具体修复方式,如果人遇到,可直接留言交流或者邮件),再次去付款,正常!!!此时想想一条错误数据,竟然能使系统到如此崩溃的地步,也是醉了。

    总结:这个问题告诉自己,很多事情并不只是表面上看起的那样,需要更深层次去发掘问题的根源所在。在解决这个问题的过程中,自己也学到了很多东西,对session的理解,查找效率低下的SQL方法,甚至一些很高级的操作系统层report方法。同时,要感谢在这个解决问题的过程中,客户的理解及各位同事的帮助。此文谨以记录此事。

EBS Form导出Excel格式数据

      有时候客户需要将类似日记账信息直接从主界面通过系统自动的导出功能导出数据到本地,系统本身提供的导出格式是"csv",当然这个格式通过其他阅读器也是可以正常打开,只是不能像通过Excel打开一样对数据进行直接加工。因此希望通过更改系统本身的配置文件和首选项相关项的设置直接生成Excel数据输出。具体方法如下两步(注意记录修改前数据):

1. 将配置文件名 "导出 MIME 类型"的地点层数据由"text/tab-separated-values"更改为"application/vnd.ms-excel";
2. 修改首选项中"客户机字符编码"为"简体中文(GB2312)",原本是Unicode(UTF-8)

说明:暂不明修改上述两项后对其他功能的影响,待实际应用过程中检验.