啥叫SSO?

先来段正式的介绍,SSO同志掏出了自己的名片,只见上面写道:

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

 

等下!哪来的名片?

 

哈哈,百度百科给印的呗。

 

SSO的实现机制:

当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把 ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

 

好了,以上介绍都是从百度百科抄的,下面就不抄了,该我上场解释这个东东了。

解释一个东西,最好是能跟生活联系起来,吃喝玩乐,逛大街,压马路,跟这些联系起来,概念就容易理解了。

 

SSO这个东西,在我们现实生活中的模型就是去北京邮电大学第二食堂吃饭的case。

SSO里的三个角色,用户,认证系统和应用系统1,分别类比为现实生活的学生,收银台,卖驴肉火烧的摊点。

 

一名学生步入食堂,走到卖驴肉火烧的小摊,说道:大哥,来4个火烧,一碗鸡蛋汤。

摊主说,不好意思,不收现金,请先去收银员那里办张卡。

学生走到收银员处,笑着对收银小姑娘说道:MM,办张卡。

收银小姑娘脸色木然,请出示下您的学生证。

学生把学生证递过去。

收银小姑娘核对下学生证号和班级科系,然后递过一张卡来给学生。

学生拿着卡,走到驴肉火烧摊位,出示饭卡。

摊主拿过去一刷,OK,没问题,扣掉饭钱,开始做火烧。

学生吃完了火烧,觉得还是饿(东北爷们),跑到桂林米粉那里,想吃一碗米粉。

学生本来已经办好了饭卡,所以不需要再办,桂林米粉那长的像米粉一样的老板娘,接过卡去,一刷,OK,开做。

学生吃的酒足饭饱,打了一个咯,好,闪人。

 

好,再回来SSO。

 

一名学生步入食堂,走到卖驴肉火烧的小摊,说道:大哥,来4个火烧,一碗鸡蛋汤。

(用户使用浏览器打开一个应用程序1

摊主说,不好意思,不收现金,请先去收银员那里办张卡。

(应用程序1引导用户进入认证系统)

学生走到收银员处,笑着对收银小姑娘说道:MM,办张卡。

(用户开始进行认证)

收银小姑娘脸色木然,请出示下您的学生证。

(认证系统要求用户提供合法用户名和密码)

学生把学生证递过去。

(用户提供用户信息)

收银小姑娘核对下学生证号和班级科系,然后递过一张卡来给学生。

(认证系统比对用户提供的信息和信息库存储的值)

学生拿着卡,走到驴肉火烧摊位,出示饭卡。

(用户带着自己的TICKET作为认证凭据)

摊主拿过去一刷,OK,没问题,扣掉饭钱,开始做火烧。

(应用程序1把用户的ticket送到认证系统校验,通过)

学生吃完了火烧,觉得还是饿(东北爷们),跑到桂林米粉那里,想吃一碗米粉。

(用户访问应用程序2

学生本来已经办好了饭卡,所以不需要再办,桂林米粉那长的像米粉一样的老板娘,接过卡去,一刷,OK,开做。

(应用程序2把用户的ticket送到认证系统校验,通过。)

学生吃的酒足饭饱,打了一个咯,好,闪人。

(用户结束访问)

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中集成Spring Security以支持单点登录(Single Sign-On, SSO)是一个常见的需求,这有助于管理用户的认证和授权。以下是简单的步骤来实现: 1. 添加依赖:首先,确保你的项目中已经添加了Spring Security的依赖。在Maven或Gradle的build.gradle文件中添加如下依赖: Maven: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` Gradle (Kotlin DSL): ```kotlin implementation("org.springframework.boot:spring-boot-starter-security") ``` 2. 配置Spring Security:在`application.properties`或`application.yml`中配置基本的Spring Security设置,如端口、登录URL、密码编码器等。例如: ```properties security.user.name=myadmin security.user.password=secret spring.security.filter-order=0 ``` 3. 定义Security Config:创建一个`SecurityConfig`类,继承`WebSecurityConfigurerAdapter`,覆盖必要的方法来配置认证、授权和过滤器。例如: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private MyAuthenticationProvider authenticationProvider; // 自定义认证器 @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/login").permitAll() // 允许直接访问登录页面 .anyRequest().authenticated() // 所有其他请求需要认证 .and() .formLogin() .loginPage("/login") // 设置登录页面 .defaultSuccessUrl("/") // 登录成功后重定向的URL .usernameParameter("username") // 登录表单用户名字段 .and() .logout() .logoutSuccessUrl("/") .deleteCookies("JSESSIONID"); // 登出后清除cookie } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(authenticationProvider); } } ``` 4. SSO集成:如果你使用的是CAS(Central Authentication Service)或其他SSO服务器,可能需要配置CasClient或类似的支持。例如,使用Spring Security CAS Support,需要添加`spring-security-cas`依赖,并配置CasClientConfigurer。 5. 定义跨域支持:如果SSO涉及到不同域之间的通信,可能还需要添加CORS配置。 6. 测试:启动应用并尝试登录,确认SSO功能是否正常作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值