第一节:单点登录简介

第一步:了解单点登录

SSO主要特点是: SSO应用之间使用Web协议(如HTTPS),并且只有一个登录入口.

SSO的体系中有下面三种角色:

  1. User(多个)

  2. Web应用(多个)

  3. SSO认证中心(一个)

SSO实现包含以下三个原则:

1)所有的登录都在SSO认证中心进行。

  1. SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是通过认证的用户.

  2. SSO认证中心和所有的Web应用建立一种信任关系.

CAS的基本原理CAS(Central Authentication Service)是Yale耶鲁大学发起的构建Web SSO的Java开源项目。

1.CAS术语解释:

SSO-Single Sign On单点登录

TGT-Ticket Granting Ticket用户身份认证凭证票据

ST-Service Ticket服务许可凭证票据

TGC-Ticket Granting Cookie存放用户身份认证凭证票据的cookie.

第二步:了解单点登录体系结构

1)CAS Server负责完成对用户信息的认证,需要单独部署,CAS Server会处理用户名/密码等凭证(Credentials).

2)CAS Client部署在客户端,当有对本地Web应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server进行认证.

第三步:单点登录环境准备工作

1)cas-server-3.5.0-release.zip(CAS服务端)

2)cas-client-3.3.3-release.zip(CAS客户端)

3)apache-tomcat-7.0.40

4)cas-client-core-3.2.1.jar

5)cas-server-core-3.5.0.jar

6)cas-server-support-jdbc-3.5.0.jar

第二节:单点登录环境搭建与部署

第一步:环境部署

1.通过Java JDK生成证书三部曲

证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了JDK自带的证书生成工具keytool。

当然在实际项目中你可以到专门的证书认证中心购买证书。

使用JDK自带的keytool生成证书

第一步生成证书:

keytool -genkey -alias mycacerts -keyalg RSA -keystore C:/common/keys/keycard

注意:输入相关信息用于生成证书.其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,

注意不要写IP。

第二步导出证书:

keytool -export -file C:/common/keys/keycard.crt -alias mycacerts -keystoreC:/common/keys/keycard

第三步导入到JDK安装目录证书:

keytool -import -keystore C:/"ProgramFiles"/Java/jdk1.6.0_32/jre/lib/security/cacerts -fileC:/common/keys/keycard.crt -alias mycacerts

2.解压cas-server-3.5.0-release.zip文件,

在cas-server-3.5.0-release\cas-server-3.5.0\modules目录下找到cas-server-webapp-3.5.0.war文件并命名为cas.war,并复制到在Tomcat根目录的webapps目录下,

如下图:

3.修改host文件(C:\Windows\System32\drivers\etc)hosts文件中添加添加以下配置

127.0.0.1         jeesz.cn (配置自己的域名.)

注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到 fast-web.cn,可以用相应PC机的IP代替

4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml)添加以下内容:

在server.xml文件中把

maxThreads="150" scheme="https"secure="true"

clientAuth="false" sslProtocol="TLS" />

修改成如下:

port="8443"

protocol="org.apache.coyote.http11.Http11Protocol"

maxThreads="150"

SSLEnabled="true"

scheme="https"

secure="true"

clientAuth="false"

sslProtocol="TLS"

keystoreFile="C:/common/keys/keycard"

keystorePass="xxxxxx "

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"

/>

5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入 jeesz.cn:8080/cas如果出现以下界面…

注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。

第二步:配置数据库验证

1.在apache-tomcat-7.0.2\webapps\cas\WEB-INF目录下找到deployerConfigContext.xml文件

这里sql属性是从user表中根据cas登陆名查找密码-->

2.增加数据源dataSource,

在deployerConfigContext.xml,(跟上面同一个文件)找到

,在下面添加如下代码:

com.mysql.jdbc.Driver

jdbc:mysql://127.0.0.1:3306/sso根据自己的数据库URL地址-->

root根据自己的数据库用户名-->

根据自己的数据库密码-->

3.数据库添加用户表及数据(这里用的mysql),比如在mysql数据库中有t_user表

4.增加jar包,cas-client-core-3.2.1.jar、cas-server-core-3.5.0.jar、cas-server-support-jdbc-3.5.0.jar包拷贝到apache-tomcat-7.0.2\webapps\cas\WEB-INF\lib目录下。

5.重启Tomcat,打开浏览器,输入  jeesz.cn:8080/,输入数据库里的用户名…

现在我们的CAS服务端已经配置好了,接下来,我们配置客户端

第二节:配置自己的Web工程(客户端)

1.在host文件下,添加如下代码:

127.0.0.1          www.sso1.com

127.0.0.1        www.sso2.com

注意:这个网址最好不要用互联网已经存在的域名,否则你将无法访问该地址。

如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到www.sso1.com,www.sso2.com,可以用相应PC机的IP代替

1.在Tomcat根目录下创建一个sso1,sso2目录。如下如:

2在eclipse新建两个web工程,分别为sso1,sso2。

3在自己的Web工程里加入cas-client-core.jar,commons-logging-1.1.jar,(解压cas-client-3.2.0-release.zip,在cas-client-3.2.0-release.zip\cas-client-3.2.0\modules,找到该JAR包)分别加入到sso1,sso2工程的lib里。

JEESZ-SSO解决方案相关推荐

  1. 基于.Net的单点登录(SSO)解决方案

    基于.Net的单点登录(SSO)解决方案 前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助. ...

  2. 完全跨域的单点登录(SSO)解决方案源码解析

    为什么80%的码农都做不了架构师?>>>    本文介绍的是一种PHP的开源SSO解决方案,可完全跨域,实现较简洁,源码地址:https://github.com/legalthin ...

  3. 安全单点登录(SSO)解决方案

    随着企业大量采用云应用程序,最终用户不得不在一天中处理越来越多的密码,只是为了完成他们的工作.为了进行有效的用户身份管理,您需要采用一种有效且安全的方法来管理用户;密码.ADSelfService P ...

  4. SSO解决方案 - CAS/SMAL 介绍

    SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 ...

  5. 单点登录 SSO 解决方案选型指南|身份云研究院

    单点登录(SSO)是目前企业降本增效以及提升用户体验的主流选择方案.常规的单点登录指"登录一次,即可访问所有互相信任的应用,用户不再需要记住每一个应用的账号密码",这有效解决了密码 ...

  6. 单点登录SSO解决方案之SpringSecurity+JWT实现

      通过前面几天文章我们详细的介绍了SpringSecurity的使用,本文我们来看下,结合JWT来实现单点登录操作. 一.什么是单点登陆   单点登录(Single Sign On),简称为 SSO ...

  7. SSO单点登录解决方案——Filter方式

    SSO单点登录解决方案 2008-11-21 14:26:57|  分类:单点登录 |  标签:|字号大中小 订阅 一般来说,Web应用需要SSO的功能,应该通过以下的交互过程来调用身份认证服务的提供 ...

  8. SSO(Single Sign-on) in Action

    1. SSO 原理浅谈 SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方 ...

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

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

  10. 转载的SSO文章,很基础

    单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面 ...

最新文章

  1. 推辞掉得不是你的工作,而是你的未来
  2. 通用职责分配软件原则之8-中介原则
  3. csv linux java,java 执行Linux 命令合并.csv文件
  4. php 连接主从redis,PHP7对Redis的扩展及Redis主从搭建
  5. mdb java_Java生成mdb文件(MS Access文件)
  6. Codeforces Round #365 Div.2
  7. python计算器代码,Python实现两款计算器功能示例
  8. idea maven 本地仓库配置报错
  9. 卡方检验spss步骤_数据分析--学统计amp;SPSS操作
  10. win8计算机无法安装打印机驱动程序,Win8电脑打印机驱动安装失败怎么办
  11. 2021年程序员个人年终工作总结10篇
  12. 【洛谷】P1894 完美的牛栏
  13. python 全栈开发,Day113(方法和函数的区别,yield,反射)
  14. python脚本运行越来越慢
  15. 莫纳什计算机专业优势,2020年去澳洲留学就读莫纳什大学计算机学院有哪些优势?...
  16. 数控机床设备物联网远程控制解决方案
  17. Atrainable feature extractor for handwritten digit recognition(经典文章阅读)
  18. flash按钮html层遮罩
  19. 摇一摇语音报时(序)
  20. easyswoole(1)

热门文章

  1. 2014年最新前端开发面试题
  2. CentOS 6.4 i386 版本安装 FastDFS、使用Nginx作为文件访问WEB服务器
  3. python之旅(六) - 自省
  4. 绘制机械图c语言编程,求用C语言绘制机械三视图程序?
  5. java编写地铁购票系统_Java_地铁购票系统
  6. 【论文阅读整理】A Survey on Device-free Indoor Localization and Tracking in the Multi-resident Environment
  7. EndNote 20的同步功能如何使用?及新版下载
  8. 鸿蒙 电视 安卓,华为鸿蒙2.0、EMUI 11齐发 打通手机、电视、PC全平台
  9. 北斗导航 | 北斗三号全球导航卫星系统6类服务测试评估
  10. 倍频程与钢琴调式的距离