认证(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

更多推荐