利用HttpClient实现WI/SSO中的Eager Sign in

WI/SSO 默认的 Eager Sign in 将用户认证信息直接提交到 WebSEAL 提供的认证表单 ,缺乏灵活性以及适用性。本文的解决方案在自定义登录页面和 WebSEAL 认证表单之间加 入了中间过程,将该登录认证过程分为两步提交:1)提供一个自定义登录页面和 Servlet 用来收集用户认证信息,通常是用户名和口令;2)在服务器端将该 Servlet 收集到的认 证信息连同必要的 HTTP 请求数据通过 HttpClient 一同提交到 WebSEAL 的认证表单,并 根据 WebSEAL 返回的结果进行相应的处理。如果在认证过程中发生任何错误,通过结果处 理可以转到自定义的错误页面,避免 WebSEAL 默认的认证错误处理。该解决方案的优点在 于其灵活性以及适用性,可以有效地提升用户体验。

SSO 与 IBM WI/SSO

SSO 介绍

SSO 基本概念

单点登录(Single Sign On,简称为 SSO),是目前比较流行的企业业务整合的解决方 案之一。利用 SSO,用户只需在应用服务器上登录一次,便可以访问启用了 SSO 域中的任 何应用服务器,而无需再次登录。其实质就是获得对企业资源的访问权限。

单点登录不仅是企业应用集成(EAI)的一个重要方面,还是 SOA 按需时代的要求之一 。它不仅降低安全风险和管理消耗,并且大大简化 SOA 的安全问题,从而提高服务之间的 合作效率。

SSO 实现

SSO 并不是 Java EE 中的标准实现,而是各中间件提供商在提供 Java EE 应用服务器 集群时提供的一种共享认证信息的机制,所以各厂商提供的实现方式不一样。例如 IBM 的 WebSphere 是通过 Cookies 记录认证信息,BEA 的 WebLogic 通过 Session 共享技术实 现认证信息的共享,国内深圳金蝶的 Apusic 采用的技术和 BEA WebLogic 基本一致。

IBM WI/SSO 介绍

WI/SSO 基本概念及原理

IBM 提供的 SSO 解决方案——WI/SSO(Web Identity/Single Sign On)是 IBM 为其外部应用提供的标准用户服务,用来对 ibm.com 的用户进行注册,授权以及管理 。它允许用户通过 IBM Tivoli Access Manager(TAM) 中的 WebSEAL 逆向代理安全服务器 组件访问被保护的应用程序。WebSEAL 会对用户进行统一认证,并且管理用户认证信息。

图 1 WI/SSO 体系结构

如图 1 所示,WebSEAL 位于外部和内部防火墙之间的非保护区(Demilitarized Zone ,DMZ),用来向绿色区域的 Web 服务器转发请求。它会一直跟踪受保护的 IP 地址,接 收发往 Web 服务器或应用服务器的请求,提供认证和授权服务,并在发送请求前把该请求 的地址更改为实际目标地址转发出去。

时间: 2024-07-28 17:15:16

利用HttpClient实现WI/SSO中的Eager Sign in的相关文章

httpclient-java 利用 httpClient 模拟登陆网站时,网站重定向,我该怎么进入后继的网页啊!

问题描述 java 利用 httpClient 模拟登陆网站时,网站重定向,我该怎么进入后继的网页啊! 我用的是httpclient4.3.6 .我模拟登陆我们学校的网站,获取了cookies,但是我用httpwatch看 有重定向的问题,我不知道怎么进入后面的网页!求解!我贴上代码,求代码详解,谢谢!!!小弟初学java 现需要做这个操作,很是艰难呀!感激不尽! 解决方案 public class Test { public static void main(String[] args) th

利用ISAPI实现向数据库中添加记录

本文介绍了用HTML(HypertextMakeupLanguage)编写界面.编写ISAPI(InternetServerApplicationProgrammingInterface)交互程序以实现向用MicrosoftSQLServer建立的数据库中添加记录的方法. 1.前言 MicrosoftSQLServer是一种可伸缩的.高性能的关系型数据库管理系统(RDBMS),它专为分布式客户机-服务器计算环境而设计.它的内置数据复制功能.强大的管理工具和开放式的系统体系结构为发布信息提供了一个

利用DataSet存取SQL Server中的二进制文件

server|二进制 利用DataSet存取SQL Server中的二进制文件 作者 朱二 利用DataSet可以方便的对SQL Server中的二进制文件进行存取与更新操作,下面是详细的代码演示 演示环境: 数据库机器名 :s_test登陆名 :sa密码 :7890数据库名 db_test 下面建立一个表: create table tb_test(id int identity(1,1),photo image ,constraint pk_tb_test primary key(id))

SharePoint自动化部署:如何利用PowerShell 导出/导入AD中的用户

这几个月一直在帮客户改需求,部署.我已经心力憔悴,经过一段时间的摸索,我对用PowerShell实现自动化部署也有了一些心得,比如说利用PowerShell导出导入AD中的User.在基于SharePoint平台开发时,利用AD来进行人员的管理,一般会建组织单元(OrganizationalUnit)来对用户进行管理.当最终部署到客户的服务器上时,怎样把本地AD中的用户数据同步到服务器上呢,要知道如果手动输入人员是一件麻烦的事.幸运的事,PowerShell可以帮我们解决这个麻烦的问题. 导出A

如何利用TXT记事本在局域网中聊天小技巧

相信那些很熟悉电脑应用工具的朋友一定知道局域网中聊天除了使用聊天工具以外,还可以用TXT记事本来实现,那如何利用TXT记事本在局域网中聊天?请看以下的应用小技巧分享: 在公司里的上班时间进行私人间的聊天是不允许的,如果要有什么话说只能等下了班再说,虽然目前有一些可以在局域网中的聊天工具,不过使用起来还是很不方便,怕带上"工作时聊天"罪名,后来在一个网友的启发下我就用了一种另类的聊天方式,保证安全可靠.使用方便.下面我就来介绍一下实现的过程. 1.先建立一个TXT文件,然后再建立一个文件

利用 Spring Boot 在 Docker 中运行 Hadoop

本文讲的是利用 Spring Boot 在 Docker 中运行 Hadoop,[编者的话]Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.本文介绍了如何利用Spring Boot在Docker中运行Hadoop任务. 简介 越来越多的应用都开始使用Hadoop框架.而开发者在使用过程中也遇到一些挑战,比如使用诸如Docker之类的容器开发和部署相关的技术栈开发的应用.我们将会在下面的例子中介绍如何克服这些挑战. 由于 S

代码-利用CocoasPod在Swift项目中使用CorePlot源码出现错误

问题描述 利用CocoasPod在Swift项目中使用CorePlot源码出现错误 利用CocoasPod在Swift项目中使用CorePlot,最后运行程序时CorePlot源码出现错误,说函数出现问题,只需要0个参数而代码给了3个参数,可是我没有动过源码,有大神知道问题出在哪里么

如何利用opencv实现在视频中每隔固定的n像素列数取一副图像?

问题描述 如何利用opencv实现在视频中每隔固定的n像素列数取一副图像? 在视频中,视频向前播放,视频画面每隔固定的像素列数n后,取当前的画面.各位大神有没有思路? 解决方案 视频不是以帧的形式播放的吗?那怎么实现你这种方法哦.除非你的n个列数就是一幅图像列数

指针-C++中利用子函数交换main()中的一个int数组的值,交换地址为什么不可?

问题描述 C++中利用子函数交换main()中的一个int数组的值,交换地址为什么不可? 某书思考题 只改动子函数 实现主函数中数组排序我写了3种子函数 注释的都是可以正常用的 最上面的不可以(排序没变)不知道是为啥(指针不是代表地址吗 既然形参无法传回那我改变地址应该也可以啊) #include<iostream>#include<iomanip>#include<cstdlib> //pauseusing namespace std;//排序不变void swap(