本文将介绍如果使用OAM实现PeopleSoft(PS) 单点登录,PeopleSoft系统以下简称PS,在OHS和Webgete配置完成的前提下,步骤如下:

1、配置OAM 资源保护

第一步、登录http://xxx.port/oamconsole配置资源保护

第二步、.在上面的Webgate Agent当中添加如下保护资源:

/psc/**

/cs/ps/**

/ps/**

/cgi-bin/printenv/**

/psp/**

2、OAM 标头配置

以管理员用户登录OAM控制台,这里是weblogic,打开应用程序域==>WebGate==>授权策略==>Protected Resource Policy===>响应,新建一个响应。

        名称:

OAM_REMOTE_USER

REMOTE_USER

PS_SSO_UID

类型:标头

值:$user.attr.uid

3、OHS配置

在OHS服务上找到mod_wl_ohs.conf配置文件,对其进行编辑添加对Peoplesoft资源的监听。

第一步、cd 到/oracle/ohshome/Middleware/Oracle_WT1/instances/instance1/config/OHS/ohs1目录下

第二步、执行vim mod_wl_ohs.conf命令,在mod_wl_ohs.conf中添加如下配置

<Location/psp>

SetHandler weblogic-handler

WebLogicHost xx.xx.xx.xx

WebLogicPort 80

</Location>

<Location/ps>

SetHandler weblogic-handler

WebLogicHost xx.xx.xx.xx

WebLogicPort 80

</Location>

<Location/psc>

SetHandler weblogic-handler

WebLogicHost xx.xx.xx.xx

WebLogicPort 80

</Location>

<Location/cs/ps>

SetHandler weblogic-handler

WebLogicHost xx.xx.xx.xx

WebLogicPort 80

</Location>

保存配置,重启OHS实例

4、响应配置

第一步、cd /oracle/ohshome/Middleware/Oracle_WT1/instances/instance1/config/OHS/ohs1/htdocs
第二步、ln -s ../cgi-bin cgi-bin
第三步、chmod 755 cgi-bin/printenv
第四步、cd cgi-bin
第五步、vim printenv ,修改perl 路径为#!/usr/bin/perl

第六步、重启ohs实例

5、响应测试

访问http://<webgatehost>:<port>/cgi-bin/printenv,可以看到 PS_SSO_UID标头中存在用户名,说明前面4步的配置是成功的

6、建立对Peoplesoft进行公共访问的用户

使用管理员用户登录Peoplesoft,打开主菜单PeopleTools安全性用户概要,新建一个LOGIN用户概要,密码123456
用户ID类型选择无
角色最好给一个员工自助的角色

7、开放用户的公共访问权限

开发环境中使用的webprofile为TEST,打开主菜单==>PeopleTools==>web概要==>web概要配置,选择TEST,生产环境是PROD,对其进行编辑。

在安全性页中,允许公共访问,用户填入上一步中新建的用户,此处为第六步新建的TESTLOGIN的用户

8、修改Peoplesoft登录认证逻辑

使用Peoplesoft Application Designer连接Peoplesoft,打开FUNCLIB_LDAP Record.然后编辑LDAPAUTH的Peoplesoft code。找到函数getWWWAuthConfig,修改默认登录用户为新创建的用户,此处为TESTLOGIN

添加验证代码

/*----peoplesoft sso-----*/

Function Oracle_Access_Manager_Authentication()

/* Note: Following file will written to the default path.*/

/* Usually appserv/<instance name>/files */

&logfile = GetFile("oamaccess.log", "A");

If &logfile.Isopen Then

&logfile.Writeline("INFO: Netpoint_Authentication_Profile started");

&logfile.Writeline(String(%Datetime));

&logfile.Writeline("authMethod: ");

End-If;

If %PSAuthResult = True And

&authMethod <> "LDAP" And

&authMethod <> "COREID" And

&authMethod <> "SSO" Then

If &logfile.Isopen Then

&logfile.Writeline("INFO: AuthResult and AuthMethod ok.");

End-If;

getWWWAuthConfig();

If &logfile.Isopen Then

&logfile.Writeline("INFO: After get wwwauthconfig.");

&logfile.Writeline(&defaultUserId);

End-If;

If %SignonUserId = &defaultUserId Then

If &logfile.Isopen Then

&logfile.Writeline("INFO: %SignonUserId = &defaultUserId ");

End-If;

&userID = %Request.GetHeader("PS_SSO_UID");

If &logfile.Isopen Then

&logfile.Writeline("INFO: After getting HTTPheader");

&logfile.Writeline(&userID);

End-If;

If &userID <> "" Then

If &bConfigRead = False Then

getLDAPConfig();

If &logfile.Isopen Then

&logfile.Writeline("INFO: After getLDAPConfig()");

&logfile.Writeline(&userID);

End-If;

&GlobalUserID = &userID;

If &logfile.Isopen Then

&logfile.Writeline("INFO: After DNTold");

&logfile.Writeline(&GlobalUserID);

End-If;

If &GlobalUserID <> "" Then

SetAuthenticationResult( True, &GlobalUserID, "", False);

&authMethod = "WWW";

If &logfile.Isopen Then

&logfile.Writeline("INFO: Userid is valid");

&logfile.Writeline(&GlobalUserID);

End-If;

End-If;

End-If;

Else

If &logfile.Isopen Then

&logfile.Writeline("Warning: %SignonUserId not = &defaultUserId");

&logfile.Writeline(%SignonUserId);

&logfile.Writeline(&defaultUserId);

End-If;

End-If;

Else

If &logfile.Isopen Then

/*Note: Next line sometimes wraps due to length – fix if necessary */

&logfile.Writeline("ERROR: %PSAuthResult = True And");

&logfile.Writeline("&authMethod <> ""LDAP"" And ");

&logfile.Writeline("&authMethod <> ""SSO""");

&logfile.Writeline(%PSAuthResult);

&logfile.Writeline(&defaultUserId);

&logfile.Writeline(%Request.GetHeader("PS_SSO_UID"));

End-If;

End-If;

If &logfile.Isopen Then

&logfile.Writeline("INFO: Oracle_Access_Manager_Authentication_Profile exit");

&logfile.close();

End-If;

End-If;

End-Function;

/*----peoplesoft sso-----*/

9、添加对OAM令牌的认证

使用管理员用户登录Peoplesoft,打开主菜单==>PeopleTools==>安全性==>安全性对象==>登录PeopleCode,启用OAMSSO_AUTHENTICATION

10、Weblogic用户需要禁止基本认证

进入目录 PIA_HOME>\webserv\peoplesoft\config,修改config.xml文件,添加如下配置
<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

例如:

11、用户名大小写问题

OAM传送OBSSOcookies给PS中用户名都为大小。而PS系统中本身用户为小写,而且PS系统用户名大小写敏感,导致用户名小写用户名无法登陆,解决方法很简单:
删除PeopleCode中所有的upper关键字,在删除upper关键字之前先备份PeopleCode文件

12、配置目录

配置OID或者AD的目录连接
测试连通性

13、高速缓存目录模式

配置高速缓存模式

14、身份验证映射

配置身份映射,下图cn对应员工登录系统工号

15、用户概要映射

配置用户概要映射

16、PS服务器重启

重启PS服务器和进程

17、同步用户

完成以上配置并重启后,还需要将AD或者OID的用户同步到PS的PSOPRDEFN表中,实现帐号和HR工号的映射
可采用如下方案:

1.开发定时任务接口,每天凌晨将人员表中的数据同步到PS临时PS_OPRDEFN_SSO_TMP_TBL中

2.再将PS_OPRDEFN_SSO_TMP_TBL写到到PSOPRDEFN人员概要表、psroleuser权限表、psopralias人员类型表

至此OAM实现PeopleSoft 单点登录就完成了,通过原有的门户就可以直接链接到PS人力资源系统

有兴趣的发送邮箱到bushibook@163.com ,提供在线技术支持

Oracle OAM实现PeopleSoft SSO单点登录相关推荐

  1. CAS SSO 单点登录 【完整版】

    什么是单点登录?什么是SSO? SSO就是单点登录!!! SSO即Single Sign On. 可是为什么我们要单点登录呢?为什么不能把所有的系统做成一个war包里呢? 道理很简单啊,如果这个银行这 ...

  2. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  3. [精华][推荐]CAS SSO单点登录服务端客户端学习

    1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多 ...

  4. 学习CAS实现SSO单点登录

    学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...

  5. 著名ERP厂商的SSO单点登录解决方案介绍一

    著名ERP厂商的SSO单点登录解决方案介绍一 参考文章: (1)著名ERP厂商的SSO单点登录解决方案介绍一 (2)https://www.cnblogs.com/wintersun/p/557148 ...

  6. JAVA springboot ssm b2b2c多用户商城系统源码-SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  7. SSO单点登录三种情况的实现方式详解

    SSO单点登录三种情况的实现方式详解 单点登录(SSO--Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子 ...

  8. CAS SSO 单点登录 实例

    1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 12 ...

  9. cas跨域单点登录原理_CAS实现SSO单点登录原理

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

最新文章

  1. 撩课mysql_撩课-Mysql第20部分索引
  2. 计算机管理信息系统大作业,管理信息系统期末大作业
  3. java 矩阵计算 加减乘除 反转 分解
  4. jar 命令 打包装class文件的文件夹
  5. 使用Scrapy框架发送POST请求
  6. java实现 XSS攻击防护
  7. SQLSERVER压缩数据文件的用处有多大
  8. jedis java.lang.verifyerror_需要使用jfinal中的JedisPlugin的一些问题
  9. vue踩坑--TypeError: __WEBPACK_IMPORTED_MODULE_1_vuex__.a.store is not a constructor
  10. 基于微信小程序会议室预约系统设计与实现毕业设计毕设开题报告参考
  11. Java 计算工作时间 除去周末、节假日
  12. 计算机网络的结构有,计算机网络的组成部分是什么,其各自都有什么功能
  13. 3月第1周易盾业务风控关注 | 治理升级,让“标题党”、流量造假等网络乱象走开
  14. 写在虚拟机闪退,red hat挂了之后
  15. 国内优秀的敏捷项目协作工具Leangoo[微信版]全新体验之后感
  16. java 填充字符串_Java字符串右补齐——String.format
  17. go语言工具_Concurrent Map
  18. Python seek()和tell()函数详解
  19. 更改或者重置linux 系统 root 密码
  20. 主句过去完成时,从句过去将来时

热门文章

  1. 计算机耗材和计算机配件的区别,原材料和耗材有啥区别
  2. SequoiaDB 巨杉数据库 学习-高可用与容灾
  3. 职业梦想是计算机的英语作文,关于梦想职业英语作文
  4. Android破取某漫画app获得VIP权限
  5. 与奇点机智一起,探寻电商智能客服的“致命细节”|白洞战报
  6. asterisk srtp
  7. 世界那么大,我想去看看。Django仿制微信朋友圈九宫格相册(1)
  8. 带备注的PPT使用演讲者模式操作说明(PPT2010)
  9. 12.4 备份和恢复
  10. 在网页中撰写Python程式 - 使用pyscript