900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 框架CAS实现SSO单点登录功能

框架CAS实现SSO单点登录功能

时间:2023-03-16 11:23:56

相关推荐

框架CAS实现SSO单点登录功能

1. 概述

1.1. 什么是SSO?

单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。

管网地址:/projects/cas

1.2. 什么是CAS?

随着SSO技术的流行,相关产品也比较多,其中CAS就是一套解决方案,CAS(Central Authentication Service)中文翻译为统一身份认证服务或中央身份服务,它由服务端和客户端组成,实现SSO,并且容易进行企业应用的集成。

CAS是Yale大学(耶鲁)发起的一个开源项目,旨在为web应用系统提供一种可靠的单点登录方法,CAS在12月正式成为JA-SIG的一个项目。

CAS provides enterprise single sign-on service for the Web:

An open and well-documented protocolAn open-source Java server componentPluggable authentication support (LDAP, database, X.509, 2-factor)Support for multiple protocols (CAS, SAML, OAuth, OpenID)A library of clients for Java, .Net, PHP, Perl, Apache,uPortal, and othersIntegrates withuPortal, BlueSocket, TikiWiki, Mule, Liferay, Moodle and othersCommunity documentation and implementation supportAn extensive community of adopters

CAS具有以下的特点:

一个开放且有据可查的协议一个开源的 Java 服务器组件可插拔身份验证支持(LDAP、数据库、X.509、2-factor)支持多种协议(CAS、SAML、OAuth、OpenID)用于 Java、.Net、PHP、Perl、Apache、uPortal等的客户端库与uPortal、BlueSocket、TikiWiki、Mule、Liferay、Moodle 等集成社区文档和实施支持广泛的采用者社区

有了CAS,我们的系统架构就演变成下面这样的:手工绘制,看把。。。

从架构上可以看出,CAS包含两个部分:CAS Server和CAS Client.

CAS Server需要独立部署,主要负责对用户的认证工作,CAS Client负责处理

对客户端受保护资源的访问请求,需要登录,重定向到CAS Server。

2. CAS Server服务器端

2.1. CAS服务器端软件包下载

/apereo/cas-overlay-template

切换分支下载源码,目前最新源码是6.4版本的。我下载的是5.3 ,6.4编译是gradle,不是maven,

下载后idea打开build新的war包

然后放进tomcat中,启动项目

启动成功浏览器输入地址打开http://localhost:8080/cashttp://localhost:8080/cas/login

默认用户名和密码在\webapps\cas\WEB-INF\classes\application.properties里面 用户名:casuser 密码:Mellon

2.3. CAS Server服务器配置

2.3.1 去除https认证

CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买)。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。我们这里讲解通过修改配置,让CAS使用HTTP协议。当然也可以配置tomcat的https协议二选一。。

修改CAS服务端配置文件:

增加

cas.tgc.secure=false

cas.serviceRegistry.initFromJson=true

然后再次修改D:\apache-tomcat-8.5.31\webapps\cas\WEB-INF\classes\services路径下的HTTPSandIMAPS-10000001.json文件

修改serviceid

"serviceId" : "^(https|http|imaps)://.*"

3. CAS Client客户端配置(自己项目)

第一:新建两个项目分别增加Pom文件的依赖即pom.xml

<dependency><groupId>net.unicon.cas</groupId><artifactId>cas-client-autoconfig-support</artifactId><version>2.1.0-GA</version></dependency>

第二:启动类追加开启CAS的注解@EnableCasClient

第三:application.yml配置文件

客户端1

server:port: 8010cas:server-url-prefix: http://localhost:8080/casserver-login-url: http://localhost:8080/cas/loginclient-host-url: http://localhost:8010validation-type: cas3

项目写个测试类

import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@Api(description = "SSO-CAS的测试")public class TestController {@GetMapping("/test1")public String test1(){return "test1....";}}

客户端2

server:port: 8011cas:server-url-prefix: http://localhost:8080/casserver-login-url: http://localhost:8080/cas/loginclient-host-url: http://localhost:8011validation-type: cas3

测试类

import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@Api(description = "SSO-CAS的测试")public class TestController {@GetMapping("/test2")public String test1(){return "test2....";}}

1.首先重新启动tomcat服务器中的CAS Server。

2.分别启动客户端1和客户端2,然后在浏览器地址栏输入客户端1的地址http://localhost:8010/test1和客户端2的地址,跳出登陆页面

当我们在其中一个登录界面登录账号后(假设登录客户端2)就会跳转到登陆后的界面,既test2字符串页面。。同理test1登陆后跳转test1页面。。以上就是单点登录的测试。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。