单点登录是指用户在仅通过一次身份验证后,可以在多个应用程序中自由切换。

这意味着用户只需要一次登录信息,只要他点击指向其他应用程序的链接,安全信息就会自动从一个应用程序传递到另一个应用程序,用户就不会再输入登录信息了。当然,所有这些参与的应用程序都应该配置一个单点登录。

PeopleSoft应用有3种配置单点登录的方法:

1、PeopleSoft Only【PS_TOKEN Cookie】

2、PeopleSoft and Oracle Apps

3、PeopleSoft and Kerberos

本文中仅讨论‘PeopleSoft Only’方式,以及2个PeopleSoft应用程序之间如何实现单点登录。

在开始使用单点登录功能和设置之前,先来学习一点PS_TOKEN cookie的知识。

什么是PS_TOKEN cookie

PS_TOKEN是嵌入到peoplesoft 用户浏览器的内存中的cookie中的。只要cookie是有效的,用户就可以浏览peoplesoft应用程序,而不需要再次输入账号密码。

Note:如果在浏览器中禁用了cookie,用户将无法进入peoplesoft应用程序。

如何生成PS_TOKEN cookie

当用户在PeopleSoft应用程序中输入他的登录信息时,Webserver将该信息传递给PeopleSoft应用服务器。根据提供的信息,PeopleSoft应用服务器执行以下任务:

1、对用户进行身份验证

2、生成一个单点登录令牌

3、加密单个登录令牌

4、将令牌发送给Webserver,并使用指示该系统对用户进行身份验证的代码

应用服务器生成的单一登录令牌包含用户id、语言代码、发布系统(issuing syste)和签名的日期和时间

Signature = SHA1_Hash ( User ID + Language Code + Date and Time Issued + Issuing System + Local Node Password )

在从应用服务器接收单个登录令牌后,PeopleSoft Web服务器会生成pstoken cookie,然后将其插入到用户的浏览器内存中。pstoken cookie的数据值包含应用程序服务器生成的单个登录令牌。

PS_TOKEN cookie保留在用户的浏览器中,直到会话结束。

PS_TOKEN cookie有多安全

1、PS_TOKEN cookie驻留在浏览器内存中,不写到磁盘。

2、没有密码存储在cookie中

3、加密的。

4、包含数字签名

5、如果过期,cookie会失效

如何使用PeopleSoft单点登录

现在已经了解了PS_TOKEN cookie的生成,让我们只看两个PeopleSoft应用程序之间的单点登录过程。如果两个应用程序为HCM和FSCM,用户第一次登录到HCM(生成PS_TOKEN)。

当用户从HCM应用单击指向FSCM应用程序的链接时,将发生下面的步骤:

1、浏览器将PS_TOKEN cookie(由HCM生成)发送到FSCM Web服务器

2、FSCM Webserver看到登录令牌并没有显示在页面中,而是将PS_TOKEN cookie的数据字段发送到FSCM应用服务器进行身份验证和验证。

3、FSCM应用服务器在PS_TOKEN cookie的数据字段上执行验证检查。

检查1:转发节点是否可信?在FSCM应用程序中,在pstrustnode表中输入系统值应该是一个值得信赖的节点。

检查2:令牌过期了吗?-检查签发的日期和时间值,以确定标记是否已过期。在FSCM中设置到期值,而不是HCM应用程序的值集。如果HCM的有效期为40分钟,而FSCM的有效期为20分钟,那么FSCM(20)下的值设置为这个验证检查。

检查3:检查数字签名是否匹配?-使用令牌中的信息,FSCM应用服务器生成一个签名,然后将其与标记中的签名相匹配。

4、经过所有验证检查之后,FSCM应用服务器提供用户请求的信息。

我的公众号:

PeopleSoft单点登录工作原理的更多相关文章

  1. SSO单点登录实现原理与总结

    一.什么是单点登录SSO(Single Sign-On) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用 ...

  2. portal单点登录的原理与实现还有ESB

    portal单点登录的原理与实现还有ESB 在毕业论文中有描述到这一点.我给我出的截图

  3. 浅析C#中单点登录的原理和使用

    什么是单点登录?我想肯定有一部分人"望文生义"的认为一个用户只能在一处登录.其实这是错误的理解(我记得我第一次也是这么理解的).单点登录指的是多个子系统只需要登录一个,其他系统不需 ...

  4. SSO单点登录实现原理

    SSO单点登录实现原理 只是简要介绍下基于java的实现过程,不提供完整源码,明白了原理,我相信你们可以自己实现.sso采用客户端/服务端架构,我们先看sso-client与sso-server要实现 ...

  5. 单点登录的原理与CAS技术的研究

    1.什么是单点登录? 关于单点登录技术的说明参考文章:http://www.cnblogs.com/yupeng/archive/2012/05/24/2517317.html 一般来说,整个原理大家 ...

  6. 使用Cookie实现跨域单点登录的原理

    对于构建分布式系统来说业务功能的物理部署会随着新业务模块的增加而增加或改变物理部署的位置.而每个用户都有统一的帐号作为我们登录系统时的一个认证.当新业务或子系统部署在不同的物理机上,我们去访问不同的业 ...

  7. 单点登录实现原理(SSO)

    简介 单点登录是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的保护资源,若用户在某个应用系统中进行注销登录,所有的应用系统都不能再直接访问保护资源,像一些知名的大型网站,如:淘 ...

  8. sso单点登录系统原理与实现

    sso单点登录 1.认识并理解sso及其应用,并能根据其实现原理自行实现sso 没有使用sso单点登录的系统用户再访问同一个系统的不同模块都必须的登录 使用sso单点登录,用户只需要登录一次,并且可以 ...

  9. CAS单点登录的原理

    1.首先了解几个概念 1).TGC:Ticket-granting cookie,存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用.2).TGT:ticket grant ...

随机推荐

  1. java list集合运算

    list集合运算 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I ...

  2. github或码云协同开发

    协同开发 1.引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢? 要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来.所以, 为 ...

  3. POJ 2562

    #include<iostream> #include<algorithm> #define MAXN 15 using namespace std; //int rec[MA ...

  4. odoo开发笔记 -- 模型一对多tree视图弹窗效果实现

    实现效果参考: 1. 开发者模式 -- 设置 -- 工作流 -- 编辑 -- 添加项目 2. 会计模块 -- 管理 -- 付款条款 -- 编辑/创建 实现方式,很简单.只要视图界面写个一对多关联字段就 ...

  5. (转)X-Frame-Options响应头缺失漏洞

    原文:https://blog.csdn.net/ljl890705/article/details/78071601 x-frame-options响应头缺失漏洞. 故名思意,就是返回的响应头信息中 ...

  6. 【VC版】如何获取其他进程中ListView控件中的内容

    如果需要C#版的,可以看下我之前写的:C#如何获取其他程序ListView控件中的内容 获取其他进程的数据需要使用到以下几个函数: VirtualAllocEx() VirtualFreeEx() W ...

  7. Jenkins邮箱设置

    首先需要在系统管理--系统设置中设置系统管理员邮件地址: 然后在邮件通知里设置用户名密码,可以发生测试邮件 这里需要注意的是上面的系统管理员邮件地址必须和用户名一致 还需要注意的是测试邮件可能被当做垃 ...

  8. Android Design Support Library——Navigation View

    前沿 Android 从5.0开始引入了Material design元素的设计,这种新的设计语言让整个安卓的用户体验焕然一新,google在Android Design Support Librar ...

  9. Nginx缓存配置之手动清除缓存

    访问我的博客 前言 前文介绍了利用 nginx 的 nginx_ngx_cache_purge 模块来实现缓存功能,并设置了缓存时间为一天. 但是如果前端修改了页面,比如首页,由于 Nginx 缓存的 ...

  10. Spark(1.6.1) Sql 编程指南+实战案例分析

    首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理.它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL ...