背景
目前互联网上帐号管理方式:
1、单一帐号系 统。只提供单一服务的网站采用的用户帐号管理模式。用户注册后使用此帐号可以在其网上上实现所有功能操作。
2、通行证。例如腾讯、163、微 软等提供多套服务的网站采用的帐号管理程序。用户在注册一次之后,使用该帐号可以在这些网站所属群里面自由使用。
OAuth2
什么是auth?
OAuth引入授权层,用来分离两种不同角色。客户端和资源所有者。资源所有者同意后,资源服务器向客户端颁发令牌。客户端通过令牌,去请求数据。OAuth 的核心就是向第三方应用颁发令牌。
oauth2是一种协议,并不是具体框架代码。(因为互联网有多种场景)本标准定义了获得令牌的四种授权方式(authorization grant )。也就是,OAuth 2.0 规定了四种获得令牌的流程。
— 授权码(authorization-code) 隐藏式(implicit) 密码式(password) 客户端凭证(client credentials)
中国市场 qq 微信 微博等应用。
注意:无论哪种授权类型,第三方申请令牌之前,都必须先到系统备案。然后第三方会拿到两个身份识别码:client ID client secret。
Open ID
OpenID是一种开放、离散式的用于用户数字标识的开源框架。在网络应用日益充斥的今天,作为终端用户的我们不得不在每个网站上设置帐号,并管理众多的帐号。而采用OpenID技术的话,你就无
须再管理这些相互独立的帐号,而是通过认证服务器管理自己唯一的身份标识。
假设你已经拥有一个在A网站注册获得的OpenID帐号,B网站支持 OpenID帐号登录使用,而且你从未登录过。此时你在B网站的相应登录界面输入你的OpenID帐号进行登录的时候,浏览器会自动转向A网站的某个页面 进行身份验证。这时你只要输入你在A网站注册时候提供的密码登录A网站,对B网站进行验证管理(永久允许、只允许一次或者不允许)后,页面又会自动转到B 网站。如果你选择了允许,那就会登录进入B网站。(选择不允许就。。。)这个时候你就可以以你的OpenID帐户身份实现B网站的所有功能。
更高级的协议,扩展并代替了OAuth2。OpenID Connect是建立在OAuth2协议上的一个简单的身份标识层,所以OpenID Connect兼容OAuth2。使用OpenID Connect,客户端应用可以请求Identity Token,它会和Access Token一同返回给客户端应用。这个Identity Token就可以被用来登录客户端应用程序,而客户端应用还可以使用Access Token来访问API资源。UserInfo端点,(OAuth2定义了Authorization端点和Token端点)它允许客户端应用和获取用户的额外信息。定义了不同类型的应用如何从身份识别提供商(IDP)安全的获取到这些Token。
去中心化的登录框架
OpenID 和 OAuth 的区别
OpenID:Authentication,即认证,用户是谁?
OAuth:Authorization,即授权,用户能做哪些操作?
OpenID Connect(OIDC):基于OAuth协议,是“认证”和“授权”的结合。
OAuth2提供了Access Token来解决授权第三方客户端访问受保护资源的问题。 OIDC在这个基础上提供了ID Token来解决第三方客户端标识用户身份认证的问题。
IDS4
Id4 是结合了 OAuth2.0 和 OpenID。