清单_用户认证模块

用户认证场景

图解说明
当用户需要操作某个微服务板块时,每个微服务都要对用户进行认证用户的身份,只有在认证成功后,才能访问具体的微服务。(用户微服务,订单微服务,秒杀微服务,商品微服务)

应用技术点

单点登录(Single Sign On)简称为 SSO

单点登录,解决每次访问具体用户微服务都要验证的问题,从而实现一处登录处处登录。
图片说明
分布式系统要实现单点登录,通常将认证系统独立抽取出来,并且将用户身份信息存储在单独的存储介质,比如: MySQL、Redis,考虑性能要求,通常存储在Redis中。

还能实现单点登录的框架有 Apache Shiro CAS Spring security 

Oauth2认证流程

第三方认证技术方案最主要是解决认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的接口协议。
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。
Oauth协议目前发展到2.0版本,1.0版本过于复杂,2.0版本已得到广泛应用。
参考:https://baike.baidu.com/item/oAuth/7153134?fr=aladdin
Oauth协议:https://tools.ietf.org/html/rfc6749

微信登录认证的过程

图片说明

Oauth2.0认证流程如下

图片说明

Oauth2包括以下角色:

1、客户端 本身不存储资源,需要通过资源拥有者的授权去请求资源服务器的资源,比如:畅购Android客户端、畅购Web客户端(浏览器端)、微信客户端等。

2、资源拥有者 通常为用户,也可以是应用程序,即该资源的拥有者。

3、授权服务器(也称认证服务器) 用来对资源拥有的身份进行认证、对访问资源进行授权。客户端要想访问资源需要通过认证服务器由资源拥有者授 权后方可访问。

4、资源服务器 存储资源的服务器,比如,清单用户管理服务器存储了清单的用户信息,微信的资源服务存储了微信的用户信息等。客户端最终访问资源服务器获取资源信息。

Oauth2在项目的应用

Oauth2是一个标准的开放的授权协议,应用程序可以根据自己的要求去使用Oauth2,项目中使用Oauth2可以实现实现如下功能:

1、本系统访问第三方系统的资源

2、外部系统访问本系统的资源

3、本系统前端(客户端) 访问本系统后端微服务的资源。

4、本系统微服务之间访问资源,例如:微服务A访问微服务B的资源,B访问A的资源。

全部评论

相关推荐

26应届求职ing:你这是报了豆音四哥的班?双非本硕拿这两个项目写简历里投100多家嵌软也没什么面试,感觉项目简单了,很多人用
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务