单点登录接口设计(单点登录系统设计)

网友投稿 733 2023-03-13


本篇文章给大家谈谈单点登录接口设计,以及单点登录系统设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享单点登录接口设计的知识,其中也会对单点登录系统设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

单点登录的几种实现方案

用户已经登录企业门户的前提下,单点登录到门户中的应用。门户与应用的域名有一定关系,门户的域名是父级域,比如xxx.com,应用的域名为二级域,比如a.xxx.com、b.xxx.com、c.xxx.com

登录门户后,颁发一个token用于接口认证,创建一个key为_a,domain为.xxx.com,path为/,value为token的cookie并set-cookie到前端,访问其他应用时,由于_a的domain为其他应用域名的父级域,会自动带上_a到后端,后端根据_a做接口校验,获取用户信息等资源,实现单点登录。
用户已经登录企业门户的前提下,单点登录到门户中的应用。门户与应用的域名没有关系。

依旧使用上面的方案一,但是token使用header传输,不存在跨域问题

以上方案二,有一些细节需要注意
没有门户,或者用户不提前登录门户的前提下,不同应用实现单点登录。

CAS,网上教程众多,比如 CAS简介和整体流程 。
方案二实际上也是利用了CAS思想实现的,ticket和token,可以类比CAS的ST(Service Ticket)和TGC(Ticket Granted Cookie)。

CAS搭建单点登录rest认证-APP端接入方案

<!-- restful --

        <dependency

              <groupIdorg.apereo.cas</groupId

              <artifactIdcas-server-support-rest</artifactId

              <version${cas.version}</version

     </dependency

     # ticket过期设置

     cas.ticket.st.numberOfUses=1

     cas.ticket.st.timeToKillInSeconds=60
注:http://localhost:9527/auth/cas/client/validateLogin为被保护后台封装的接口,该接口主要有两个功能:①调用https://cas.ananops.com:8443/cas/p3/serviceValidate向单点登录服务端验证该ST的真实性。②ST确认真实后,生成ACCESS-TOKEN以及登录用户信息并返回给APP端,用户访问被保护后台的服务。
postman测试https接口需要配置:

CAS搭建单点登录Web端

①前端vue项目判断如果有token,则说明用户已登录,可以访问客户端A的服务。否则未登陆,未登陆有两种状态:在单点登录服务端已经登录和未在单点登录服务端登陆

    判断如果有ticket,则说明已在单点登录服务端登录。调用/cas/client/validateLogin接口验证该ticket是否有效。转②

    判断如果无ticket,则说明未在单点登录服务端登录。则定向到单点登录服务端。转③

②/cas/client/validateLogin接口方法,发起http请求到单点登录服务端进行ticket验证,如果验证通过,则登录成功。单点登录客户端A生成token返回给前端,之后前端通过携带token访问客户端A的服务。

③单点登录服务端返回登录表单,用户输入用户名密码确定登录后,单点登录服务端调用用户信息验证端/auth/user/login接口,传递用户名密码参数,将验证委托给用户信息验证端

④登录成功验证通过后,携带ticket返回浏览器,重定向地址如下:

http://localhost:8000/?ticket=ST-6-NqvtyjRhezstXiyyzNNN-C-DiTw-DESKTOP-CVVQ0QK
接入用户信息验证端参考

CAS-5.3单点登录/退出客户端搭建(Springboot)

使用Springboot搭建cas客户端单点登录接口设计,主要是配置四个过滤器和一个监听器。

用于过滤不需要登录的用户,需要实现UrlPatternMatcherStrategy 接口,在matches 函数里添加不需要用户登录的链接。

按照同样的方法实现客户端系统2。
启动cas服务器端和两个客户端。输入 http://springbootcasclient.com:8001/ ,则跳转到登录界面

单点退出,需要下面三个步骤:1、添加过滤器类,过滤掉不需要登录的url单点登录接口设计;2、添加退出跳转的控制器;3、修改服务端application.properties ,加cas.logout.followServiceRedirects=true,让客户端可以自己制定退出的路径,否则会走默认退出路径。

过滤器类需要实现UrlPatternMatcherStrategy接口,然后配置到springboot中,请参考 单点登录 的 创建过滤器类 和 配置过滤器到springboot 。

退出的方式有两种,一种是走默认的路径,另一种是走自定义的返回路径。请参考 单点登录 的 用户退出控制器 。

将上面的内容添加到applicaiton.properties, 这样就可以允许客户端定制自己的退出路径了。

http协议配置:cas 5.3.x默认客户端不支持http协议, 如果不进行配置,则会出现“未认证授权的服务”错误。

要配置兼容http协议,需要在HTTPSandIMAPS-10000001.json文件中添加http。

怎么让系统实现单点登录?

如果用户的平台,比较大,用户量也比较多,建议把单点登陆单独做成一个服务。如果用户量减少,用户又没有做成单独应用的资金预算,可以将单点登陆,与用户最主要的一个业务系统合并在一起,对外(就是对其他应用系统)提供登陆验证的接口程序。
单点登陆的验证,可以采用多次交互验证的方式验证,流程如下:
1.应用系统将账号密码传给单点登陆服务
2.单点登陆服务验证账号密码是否正确,如不正确返回错误信息;如正确,随机生成一个验证字符,返回给应用系统
3.应用系统,将单点登陆返回的随机字符在发送给单点登陆的验证服务,再次验证这个随机字符是否正确
4.验证成功,则最终登陆成功。 关于单点登录接口设计和单点登录系统设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 单点登录接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单点登录系统设计、单点登录接口设计的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api接口文档使用教程(api接口的简单编写方式)
下一篇:接口性能测试用例模板(接口性能测试工具有哪些)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~