认证(Authentication)和授权(Authorization)
认证(Authentication)关注身份验证授权(Authorization)关注权限管理。
认证(Authentication)关注身份验证
授权(Authorization)关注权限管理
认证(Authentication)
关注身份验证
用户名/密码
最基础的认证方式,用户输入账号和密码进行验证。但需结合加密(如哈希加盐)提升安全性。
无密码认证
通过邮件或手机发送一次性链接/验证码,替代传统密码。
社交登录
通过第三方平台(如Google、Facebook)认证,基于OAuth协议。
令牌认证
JWT(JSON Web Token)
无状态令牌,包含签名和用户信息。
OAuth访问令牌
用于API访问,需配合授权服务器使用。
单点登录(SSO)
用户登录一次即可访问多个系统,常用协议包括:
SAML 2.0
基于XML,多用于企业级SSO。
* OAuth 2.0
授权框架,常与OpenID Connect结合实现SSO。
授权类型
| 授权类型 | 流程 | 安全性 |
|---|---|---|
| 密码模式 (Resource Owner Password Credentials) | 客户端用【用户/密码】换取【令牌】 支持 PKCE(防授权码劫持)。 | 低 |
| 隐式模式 (Implicit Grant) | 直接返回访问令牌 | 低 |
| 授权码模式 (Authorization Code Grant) | 客户端用【一次性授权码】换取【令牌】 | 高安全 |
| 客户端凭证模式 (Client Credentials Grant) | 客户端用【自身凭证(Client ID/Secret)】换取【令牌】,无用户参与。 | 中 |
| 刷新令牌模式 (Refresh Token Grant) | 客户端用刷新令牌(Refresh Token)换取新的访问令牌,延长会话有效期。 | 高安全 |
| JWT Bearer Grant (RFC 7523) | 客户端提交【签名 JWT 】换取【令牌】,适用于服务间认证。 | 高安全 |
| 设备授权模式 (Device Authorization Grant) | 设备获取用户验证码,用户在另一设备完成授权(如智能电视登录)。 | 中 |
OpenID Connect (OIDC)
在OAuth 2.0基础上添加身份层,用于认证。
生物识别认证
指纹、面部识别、虹膜扫描等,依赖生物特征数据。
多因素认证(MFA)
结合多个验证因素(如密码+短信验证码、硬件令牌、生物识别等),显著提升安全性。
API密钥
服务间认证的静态密钥,通常通过请求头或参数传递。
证书认证
使用数字证书(如X.509)验证身份,常见于SSL/TLS和客户端证书认证。
硬件令牌
如YubiKey生成一次性密码(OTP),或基于时间(TOTP)的认证。
授权(Authorization)
关注权限管理
基于角色的访问控制(RBAC)
用户分配到角色,角色拥有权限集合。例如,管理员角色可访问所有资源。
基于属性的访问控制(ABAC)
动态决策,基于用户属性(部门)、资源属性(敏感等级)、环境属性(时间、IP)等。
访问控制列表(ACL)
资源上直接定义允许/拒绝的用户或角色列表,如文件系统的权限配置。
自主访问控制(DAC)
资源所有者自主分配权限(如Linux文件系统的chmod命令)。
强制访问控制(MAC)
系统级强制策略,基于安全标签(如军事系统中的密级划分)。
OAuth授权
允许第三方应用在用户授权下访问资源(如授权GitHub访问用户Google Drive)。
策略引擎(如XACML)
使用标准化策略语言(如XACML)集中管理复杂授权规则。
权限继承
子资源继承父资源的权限,例如文件夹的子文件自动继承父目录权限。
动态授权
实时根据上下文(如地理位置、设备类型)调整权限。
关键协议与标准
OAuth 2.0:授权框架,用于第三方应用获取资源访问权限。
OpenID Connect:基于OAuth 2.0的身份认证协议。
SAML 2.0:XML标准,支持跨域SSO和属性传递。
JWT:轻量级令牌格式,常用于无状态认证和授权。
Kerberos 协议:内网认证协议
相关开源项目、云服务
- Keycloak
- Ory 生态系统
云原生 OAuth 2.0 和 OpenID Connect 服务 - Casdoor
轻量级开源身份管理平台,支持 OAuth 2.0、OpenID Connect、SAML 和 LDAP。 - Authelia
开源单点登录和双因素认证(2FA)服务,支持 OAuth 2.0 和 OpenID Connect。 - 企业级云服务:Okta
更多推荐



所有评论(0)