tonglin0325的个人主页

系统设计——登录系统

1.认证方式#

系统的常用的认证方式如下:账号密码(Basic Auth),OAuth2.0,SAML,OIDC,LDAP等

1.OAuth2.0 是一种授权协议,旨在允许应用程序安全访问资源,而不是用来验证用户的身份。

它通常用于授权流程,以获得对受保护资源的访问权限。不兼容oauth1.0.允许第三方应用代表用户获得访问权限。

可以作为web应用、桌面应用和手机等设备提供专门的认证流程。例如,用qq账号登录豆瓣、美团、大众点评;用支付宝账号登录淘宝、天猫等。参考:各开放平台账号登录API对接文档

2.SAML的全称是Security Assertion Markup Language, 是由OASIS制定的一套基于XML格式的开放标准,用在身份提供者(IdP)和服务提供者 (SP)之间交换身份验证和授权数据。

SAML的一个非常重要的应用就是基于Web的单点登录(SSO)。

3.OpenID Connect (OIDC) 是在 OAuth 2.0 的基础上构建的身份验证协议。

OIDC 添加了身份验证层,允许客户端验证用户的身份,并获取有关用户的附加信息。

还有其他的一些认证方式我们可以在Postman的authorization中查看

2.验证#

1.人机校验#

常用的人机校验有cloudflare,reCAPTCHA等

2.两步验证#

二步验证、双重验证,简称2FA(Two-factor authentication)

3.Token#

Token的类型#

常用的Token种类有很多种,比如JWT(JSON web token),Bearer Token

1.JWT

一个通常你看到的jwt,由以下三部分组成,它们分别是:

  1.  header:主要声明了JWT的签名算法;
  2.  payload:主要承载了各种声明并传递明文数据;
  3.  signture:拥有该部分的JWT被称为JWS,也就是签了名的JWS;没有该部分的JWT被称为nonsecure JWT 也就是不安全的JWT,此时header中声明的签名算法为none。

三个部分用·分割。形如 xxxxx.yyyyy.zzzzz的样式。

我们可以使用 https://jwt.io/ 网站来验证jwt格式是否正确,如下

2.Bearer Token

 

Token的无感续期#

由于安全的考虑,我们通常会要求tokenyou一个比较短的有效期,从而避免token泄露后会长时间造成风险,但是又不能要求用户在使用了很短的时间后,就重新进行认证,所以就需要token的自动续期

参考:token 过期后,如何自动续期?