Web认证与授权
字数 711 2025-11-14 00:55:23
Web认证与授权
-
认证的基本概念
认证是验证用户身份的过程,如同出示身份证进入特定场所。在互联网中,用户通过提交凭证(如用户名和密码、生物特征、数字证书)向系统证明身份。例如登录邮箱时,服务器通过比对输入的密码与数据库存储的哈希值来确认身份。 -
常见认证方式
- 单因素认证:仅依赖一种凭证,如静态密码。
- 多因素认证(MFA):结合多种独立凭证,例如密码(知识因素)、手机验证码(持有因素)和指纹(生物因素)。
- OAuth 2.0:授权框架,允许用户通过第三方平台(如Google或微信)登录,无需直接暴露密码给目标应用。
-
授权的定义与实现
授权在认证成功后进行,决定用户可访问的资源或操作权限。例如,企业系统中管理员可删除文件,而普通员工仅能查看。权限通常通过访问控制列表(ACL)或角色权限模型(如RBAC)管理。 -
会话管理与令牌技术
认证通过后,服务器创建会话并返回会话ID(通常存储于Cookie),或使用无状态令牌(如JWT)。JWT包含用户信息和签名,客户端每次请求携带它,服务器验证签名后直接授权,无需查询数据库。 -
单点登录(SSO)
SSO允许用户登录一次后访问多个关联系统。例如,使用校园账号同时登录图书馆和选课系统。依赖中央认证服务,通过安全令牌在系统间传递认证状态。 -
安全风险与防护
- 密码爆破:通过速率限制和账户锁定缓解。
- 会话劫持:采用HTTPS传输、短期令牌和定期刷新机制。
- OAuth滥用:严格验证回调地址,限制令牌范围。
-
现实应用场景
- 银行App:登录时需密码+短信验证(MFA),转账时根据账户权限授权操作。
- 云服务平台:通过API密钥对程序进行认证,按RBAC策略控制资源访问。