10.1. 认证机制

在软件系统中,有几种主流的认证机制。以下是其中一些常见的认证方式:

  • 用户名和密码认证: 用户提供唯一的用户名和相应的密码进行验证。

  • 多因素认证(MFA): 使用两个或多个独立的身份验证因素,例如密码、短信验证码、指纹等。

  • 令牌认证: 用户获得一个令牌(Token),该令牌通常有时限,用于身份验证。

  • OAuth: 用于授权第三方应用程序访问用户的资源,而无需共享用户凭据。

  • OpenID Connect: 一个建立在OAuth 2.0之上的身份认证协议,允许客户端验证终端用户及获取关于终端用户的信息。

  • SAML(Security Assertion Markup Language): 一种基于XML的标准,用于在网络中传递身份和认证信息。

  • JWT(JSON Web Token): 一种轻量级的身份验证和授权协议,以JSON对象的形式传递信息。

  • LDAP(Lightweight Directory Access Protocol): 一种用于访问和维护分布式目录信息服务的协议,常用于身份验证和授权。

10.1.1. spring security支持的认证机制

  • Username and Password - how to authenticate with a username/password

  • OAuth 2.0 Login - OAuth 2.0 Log In with OpenID Connect and non-standard OAuth 2.0 Login (i.e. GitHub)

  • SAML 2.0 Login - SAML 2.0 Log In

  • Central Authentication Server (CAS) - Central Authentication Server (CAS) Support

  • Remember Me - how to remember a user past session expiration

  • JAAS Authentication - authenticate with JAAS

  • Pre-Authentication Scenarios - authenticate with an external mechanism such as SiteMinder or Java EE security but still use Spring Security for authorization and protection against common exploits.

  • X509 Authentication - X509 Authentication