单点登录接口设计文档(单点登录实现原理)

网友投稿 642 2023-03-14


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

本文目录一览:

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接口需要配置:

单点登录的几种实现方案

用户已经登录企业门户的前提下,单点登录到门户中的应用。门户与应用的域名有一定关系,门户的域名是父级域,比如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搭建单点登录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
接入用户信息验证端参考

基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践

理论知识

在此之前需要学习和了解一些前置知识包括:

要完成的目标

基于此目标驱动,本文设计三个独立服务,分别是:

多模块(Multi-Module)项目搭建

三个应用通过一个多模块的 Maven项目进行组织,其中项目父 pom中需要加入相关依赖如下:

项目结构如下:

项目结构

授权认证中心搭建

授权认证中心本质就是一个 Spring Boot应用,因此需要完成几个大步骤:

即让授权中心服务启动在本地的 8085端口之上

这里创建了一个用户名为codesheep,密码 123456的模拟用户,并且赋予了 普通权限 (ROLE_NORMAL)和 中等权限 (ROLE_MEDIUM)

这里做的最重要的两件事: 一是 定义了两个客户端应用的通行证(sheep1和sheep2); 二是 配置 token的具体实现方式为 JWT Token。

客户端应用创建和配置

本文创建两个客户端应用:codesheep-client1 和codesheep-client2,由于两者类似,因此只以其一为例进行讲解

复杂的东西都交给注解了!

这里几项配置都非常重要,都是需要和前面搭建的授权中心进行通信的

此测试控制器包含三个接口,分别需要三种权限(ROLE_NORMAL、ROLE_MEDIUM、ROLE_ADMIN),待会后文会一一测试看效果

实验验证

首先用浏览器访问客户端1 (codesheep-client1) 的测试接口:localhost:8086/normal,由于此时并没有过用户登录认证,因此会自动跳转到授权中心的登录认证页面:http://localhost:8085/uac/login:

自动跳转到授权中心统一登录页面

输入用户名 codesheep,密码 123456,即可登录认证,并进入授权页面:

授权页面

同意授权后,会自动返回之前客户端的测试接口:

自动返回客户端接口并调用成功

此时我们再继续访问客户端1 (codesheep-client1) 的测试接口:localhost:8086/medium,发现已经直接可以调用而无需认证了:

直接访问

由于 localhost:8086/normal 和 localhost:8086/medium要求的接口权限,用户codesheep均具备,所以能顺利访问,接下来再访问一下更高权限的接口:localhost:8086/admin:

无权限访问

好了,访问客户端1 (codesheep-client1) 的测试接口到此为止,接下来访问外挂的客户端2 (codesheep-client2) 的测试接口:localhost:8087/normal,会发现此时会自动跳到授权页:

由于用户已通过客户端1登录过_因此再访问客户端2即无需登录_而是直接跳到授权页

授权完成之后就可以顺利访问客户端2 (codesheep-client2) 的接口:

顺利访问客户端2的接口

这就验证了单点登录SSO的功能了!

一份规范的接口文档应该包括什么内容

什么是接口文档?

在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,

之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。

为什么要写接口文档?

1. 项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发

2、项目维护中或者项目人员更迭的时候,方便后期人员查看、维护

3. 规避一些不该属于自己的任务而被强加于自己,等等问题.

接口文档应该包含哪些内容?

约定,(比如对资源的操作应该使用哪些方法)

标题 .清晰明了,该接口实现原型图上面哪一功能.

url: rest风格url,并且具有统一标识

请求类型:GET PUT POST DELETE

前后端负责人

请求参数

返回参数

接口完成状态

接口文档的规范是什么

url:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。uri地址里不允许出现大写字母,如果是两个单词拼接,用/分开

请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填

字段是类的属性;说明是中文释义;类型是属性类型,只有String、Number、Object、Array四种类型;备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;是否必填是字段的是否必填。

返回参数结构有几种情况:1、如果只返回接口调用成功还是失败(如新增、删除、修改等),则只有一个结构体:code和message两个参数;2、如果要返回某些参数,则有两个结构体:1是code/mesage/data,2是data里写返回的参数,data是object类型;3、如果要返回列表,那么有三个结构体,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数。

衡量接口文档的标准是什么

谢谢观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

www.jnshu.com/login/1/14708688

单点登录JWT与Spring Security OAuth

通过 JWT 配合 Spring Security OAuth2 使用的方式,可以避免 每次请求 都 远程调度 认证授权服务。 资源服务器 只需要从 授权服务器 验证一次,返回 JWT。返回的 JWT 包含了 用户 的所有信息,包括 权限信息 。1. 什么是JWTJSON Web Token(JWT)是一种开放的标准(RFC 7519),JWT 定义了一种 紧凑 且 自包含 的标准,旨在将各个主体的信息包装为 JSON 对象。 主体信息 是通过 数字签名 进行 加密 和 验证 的。经常使用 HMAC 算法或 RSA( 公钥 / 私钥 的 非对称性加密 )算法对 JWT 进行签名, ...全文 关于单点登录接口设计文档和单点登录实现原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 单点登录接口设计文档的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单点登录实现原理、单点登录接口设计文档的信息别忘了在本站进行查找喔。

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

上一篇:关于java开发rest接口实例的信息
下一篇:InvocationHandler中invoke()方法的调用问题分析
相关文章

 发表评论

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