文章内容

2019/5/30 9:42:48,作 者: 黄兵

JWT oidc

什么是OIDC:

简单来说:OIDC是OpenID Connect的简称,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。我们都知道OAuth2是一个授权协议,它无法提供完善的身份认证功能(关于这一点请参考[认证授权] 3.基于OAuth2的认证(译)),OIDC使用OAuth2的授权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且可以适用于各种类型的客户端(比如服务端应用,移动APP,JS应用),且完全兼容OAuth2,也就是说你搭建了一个OIDC的服务后,也可以当作一个OAuth2的服务来用。应用场景如图:

那些公司在使用呢:

OIDC已经有很多的企业在使用,比如Google的账号认证授权体系Microsoft的账号体系也部署了OIDC,当然这些企业有的也是OIDC背后的推动者。除了这些之外,有很多各个语言版本的开源服务端组件,客户端组件等等(http://openid.net/developers/certified/);


那什么又是JWT:

JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。

说人话:JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。

也就是说通过JWT这个规范,我们可以安全的通过浏览器和服务器之间传递一些非敏感信息JWT适合用于向Web应用传递一些非敏感信息,至于为什么不能传递一些敏感信息(比如账号密码、信用卡的一些信息),因为:如果将用户的密码放在了JWT中,那么怀有恶意的第三方通过Base64解码就能很快地知道你的密码了。

关于这部分详细的内容可以参考第二条参考资料,这里有很详细的描述,在此就不再赘述。


参考资料:

1、[认证授权] 4.OIDC(OpenId Connect)身份认证(核心部分)

2、JSON Web Token - 在Web应用间安全地传递信息

3、JSON Web Token 入门教程

分享到:

发表评论

评论列表