Oracle OAM实现PeopleSoft SSO单点登录
本文将介绍如果使用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、响应测试
6、建立对Peoplesoft进行公共访问的用户
使用管理员用户登录Peoplesoft,打开主菜单PeopleTools安全性用户概要,新建一个LOGIN用户概要,密码123456
7、开放用户的公共访问权限
开发环境中使用的webprofile为TEST,打开主菜单==>PeopleTools==>web概要==>web概要配置,选择TEST,生产环境是PROD,对其进行编辑。
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令牌的认证
10、Weblogic用户需要禁止基本认证
例如:
11、用户名大小写问题
OAM传送OBSSOcookies给PS中用户名都为大小。而PS系统中本身用户为小写,而且PS系统用户名大小写敏感,导致用户名小写用户名无法登陆,解决方法很简单:
12、配置目录
13、高速缓存目录模式
14、身份验证映射
15、用户概要映射
16、PS服务器重启
重启PS服务器和进程
17、同步用户
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单点登录相关推荐
- CAS SSO 单点登录 【完整版】
什么是单点登录?什么是SSO? SSO就是单点登录!!! SSO即Single Sign On. 可是为什么我们要单点登录呢?为什么不能把所有的系统做成一个war包里呢? 道理很简单啊,如果这个银行这 ...
- Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)
上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...
- [精华][推荐]CAS SSO单点登录服务端客户端学习
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多 ...
- 学习CAS实现SSO单点登录
学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...
- 著名ERP厂商的SSO单点登录解决方案介绍一
著名ERP厂商的SSO单点登录解决方案介绍一 参考文章: (1)著名ERP厂商的SSO单点登录解决方案介绍一 (2)https://www.cnblogs.com/wintersun/p/557148 ...
- JAVA springboot ssm b2b2c多用户商城系统源码-SSO单点登录之OAuth2.0登录流程(2)
上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...
- SSO单点登录三种情况的实现方式详解
SSO单点登录三种情况的实现方式详解 单点登录(SSO--Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子 ...
- CAS SSO 单点登录 实例
1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 12 ...
- cas跨域单点登录原理_CAS实现SSO单点登录原理
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
最新文章
- 撩课mysql_撩课-Mysql第20部分索引
- 计算机管理信息系统大作业,管理信息系统期末大作业
- java 矩阵计算 加减乘除 反转 分解
- jar 命令 打包装class文件的文件夹
- 使用Scrapy框架发送POST请求
- java实现 XSS攻击防护
- SQLSERVER压缩数据文件的用处有多大
- jedis java.lang.verifyerror_需要使用jfinal中的JedisPlugin的一些问题
- vue踩坑--TypeError: __WEBPACK_IMPORTED_MODULE_1_vuex__.a.store is not a constructor
- 基于微信小程序会议室预约系统设计与实现毕业设计毕设开题报告参考
- Java 计算工作时间 除去周末、节假日
- 计算机网络的结构有,计算机网络的组成部分是什么,其各自都有什么功能
- 3月第1周易盾业务风控关注 | 治理升级,让“标题党”、流量造假等网络乱象走开
- 写在虚拟机闪退,red hat挂了之后
- 国内优秀的敏捷项目协作工具Leangoo[微信版]全新体验之后感
- java 填充字符串_Java字符串右补齐——String.format
- go语言工具_Concurrent Map
- Python seek()和tell()函数详解
- 更改或者重置linux 系统 root 密码
- 主句过去完成时,从句过去将来时