系统设计——登录系统
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,由以下三部分组成,它们分别是:
- header:主要声明了JWT的签名算法;
- payload:主要承载了各种声明并传递明文数据;
- signture:拥有该部分的JWT被称为JWS,也就是签了名的JWS;没有该部分的JWT被称为nonsecure JWT 也就是不安全的JWT,此时header中声明的签名算法为none。
三个部分用·分割。形如 xxxxx.yyyyy.zzzzz的样式。
我们可以使用 https://jwt.io/ 网站来验证jwt格式是否正确,如下
2.Bearer Token
Token的无感续期
由于安全的考虑,我们通常会要求tokenyou一个比较短的有效期,从而避免token泄露后会长时间造成风险,但是又不能要求用户在使用了很短的时间后,就重新进行认证,所以就需要token的自动续期
本文只发表于博客园和tonglin0325的博客,作者:tonglin0325,转载请注明原文链接:https://www.cnblogs.com/tonglin0325/p/6218206.html