跳到主要内容

oauth2和oidc

  • 用户要用A网站,访问A网站的登录页面
  • 点击A网站上的授权网站B的登录链接,跳转授权网站登录页,输入用户名密码登录,——用户授权
  • B网站返回授权码,A网站用授权码申请令牌token,这一步可用A网站自动执行,
  • 携带token去B网站获取用户信息,B网站校验token,通过则返回用户信息,A网站显示用户信息

用户认证与授权

什么是用户身份认证?

用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认 证表现形式有:用户名密码登录,指纹打卡等方式。 什么是用户授权? 用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没 有权限的资源将无法访问,这个过程叫用户授权。

单点登录

引用百度百科:单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。 SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

第三方认证

当需要访问第三方系统的资源时需要首先通过第三方系统的认证(例如:微信认证),由第三方系统对用户认证通 过,并授权资源的访问权限

用户认证技术方案

单点登录的特点是: 1、认证系统为独立的系统。 2、各子系统通过Http或其它协议与认证系统通信,完成用户认证。 3、用户身份信息存储在Redis集群。   Java中有很多用户认证的框架都可以实现单点登录: 1、Apache Shiro. 2、CAS 3、Spring security CAS

Oauth2 认证

第三方认证技术方案最主要是解决认证协议的通用标准 问题,因为要实现 跨系统认证,各系统之间要遵循一定的 接口协议。 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认 证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实 现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。互联网 很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明 OAUTH标准逐渐成为开放资源授权的标准。

Oauth2包括以下角色:

1、客户端 本身不存储资源,需要通过资源拥有者的授权去请求资源服务器的资源,比如:学成在线Android客户端、学成在 线Web客户端(浏览器端)、微信客户端等。 2、资源拥有者 通常为用户,也可以是应用程序,即该资源的拥有者。 3、授权服务器(也称认证服务器) 用来对资源拥有的身份进行认证、对访问资源进行授权。客户端要想访问资源需要通过认证服务器由资源拥有者授 权后方可访问。 4、资源服务器 存储资源的服务器,比如,学成网用户管理服务器存储了学成网的用户信息,学成网学习服务器存储了学生的学习 信息,微信的资源服务存储了微信的用户信息等。客户端最终访问资源服务器获取资源信息。