SpringBootSecurity学习(26)前后端分离版之github单点登录

摘要:
单点登录关于oauth2.0,最后我们再来学习一下单点登录。SSO简单使用github实现springcloudoauth对sso是有支持的,而且使用和配置非常简单。测试启动两个项目,访问其中一个的/user接口:会直接跳转到github的登录页面:可以注意看一下上面地址栏中的地址,会非常熟悉。这里可以输入自己的github账号,然后点击登录,就会自动回跳到我们原来访问的/user地址:可以看到,我们自己的项目自动登录成功了,并返回了当前的用户数据,这个用户其实就是github的账户。
单点登录(SSO)

关于oauth2.0,最后我们再来学习一下单点登录。前面介绍过单点登录的定义,单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

关于单点登录,springcloud G版本的官方文档地址如下:

关于单点登录的例子有很多,最常见的就是我们在百度登录以后,百度网盘,百度知道,百度翻译等功能网站都会自动登录百度的账号,还有就是qq或者微信登录以后,其它腾讯的游戏等app也可以一键登录,等等。例子有很多。对于第三方授权的应用,不需要使用单点登录,但是对于同一个企业内的不同服务和软件之间的账号共享来说,单点登录是一个必要的功能。

SSO简单使用github实现

spring cloud oauth对sso是有支持的,而且使用和配置非常简单。可以使用第三方的授权服务,如GitHub,也可以自己构建授权服务。下面来用github实现一个简单的sso。

首先要去github上面登记一下,地址如下:

这里我们不再自己去登记,而是使用官方文档中演示的登记好的id和秘钥:

file

clientId和clientSecret分别是:

  • bd1c0a783ccdd1c9b9e4

  • 1a9030fbca47a5b2c28e92f19050bb77824b5ad1

而sso客户端的配置正如上面图片演示的一样。下面来新建两个项目,依赖只引入web和oauth:

file

项目的启动类中需要加入一个@EnableOAuth2Sso注解:

file

创建两个简单的接口:

file

最后就是配置文件的配置,基本上内容和官网的示例一样:

file

这里两个项目基本一样,另一个项目的代码和配置也是一样。security不写任何配置类,使用默认即可。

测试

启动两个项目,访问其中一个的/user接口:

file

会直接跳转到github的登录页面:

file

可以注意看一下上面地址栏中的地址,会非常熟悉。这里可以输入自己的github账号,然后点击登录,就会自动回跳到我们原来访问的/user地址:

file

可以看到,我们自己的项目自动登录成功了,并返回了当前的用户数据,这个用户其实就是github的账户。

现在上面的第一个项目已经登录成功,并访问了接口,下面来直接访问第二个项目:

file

可以看到第二个项目并没有再跳转登录,而是直接处于登录状态,并且账号信息与前面项目的一样。这就是简单sso的演示。

代码地址: https://gitee.com/blueses/spring-boot-security 37 38

本文由博客一文多发平台 OpenWrite 发布!

免责声明:文章转载自《SpringBootSecurity学习(26)前后端分离版之github单点登录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇常用ArcEngine开发代码plsql在64位机器下读取tnsname.ora 及oracle_home异常的解决办法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浅谈架构之路:单点登录 SSO

前言:SSO 单点登录   “半吊子”的全栈工程师又来了,技术类的文章才发表了两篇,本来想先将主攻的几个系列都开个头(Nodejs、Java、前端、架构、全栈等等),无奈博客起步太晚,写博文的时间又没有很多,只好不按顺序乱发一通,请大家见谅。   本篇文章介绍一下单点登录,不像上一篇博文介绍的前后端分离,SSO 并不能算是一种架构吧,只能说是一个解决方案...

Atitit. 单点登录sso 的解决方案 总结

Atitit.  单点登录sso 的解决方案 总结 1. 系统应用场景and SSO模式选型 2 2. 系统应用的原则与要求 2 2.1. 开发快速简单::绝大部分系统来说,开发快速简单为主 2 2.2. 支持token交换,这样有利于集成先有的系统模块无需大改动,仅仅需要改动登陆模块。。 2 2.3. 支持用户名映射.当多个子系统userna...

CAS单点登录------302个没完没了

我的配置如上 背景:Shiro + Cas 进行的单点登录配置! 其实这个问题很扯淡!看代码! 我本在shiro里面配置的Sucessurl !嘿嘿!我哭了!屌用没有! 我一脸懵逼大写的WHY??? 其实这个是CAS  登录成功这个服务是交给CAS 来进行重定向的,这个你百度下,就知道了! 改成了上面这样!     草,发现重定向了还是存在,,,,...

Spring Cloud Security集成CAS (单点登录)对微服务认证

一、前言   由于leader要求在搭好的spring cloud 框架中加入对微服务的认证包括单点登录认证,来确保系统的安全,所以研究了Spring Cloud Security这个组件。在前面搭好的demo中,如何确保微服务的安全,为整个系统添加安全控制,就需要用到Spring Cloud Security。用户通过服务网关zuul来访问任何一个微服务...

[原创]django+ldap+memcache实现单点登录+统一认证

前言 由于公司内部的系统越来越多,为了方便用户使用,通过django进行了单点登录和统一认证的尝试,目前实现了django项目的单点登录和非django项目的统一认证,中间波折挺多,涉及的技术包括djangomemcacheldap等,如果有时间的话,后边会逐步更新博客分开介绍实现过程。 sso的实现相对复杂,期间也调研了如cas+ldap,最后采取了一种...

跨域单点登录实现(使用iframe)_勇敢的心_百度空间

跨域单点登录实现(使用iframe)_勇敢的心_百度空间 跨域单点登录实现(使用iframe) 2011-12-26 18:15 目前来说,据我的认识貌似必须使用iframe 提交表单的方式,ajax方式下无法写cookie(get请求除外)。 原理上很简单,但实现起来还是走了不少弯路,各种浏览器处理方式不一样也增加了调试的难度;几经曲折终于找到了一个...