常见 Web 认证方式

[字体···] [宽度···]


Web 认证方式和规范有许多,本文对场景的方式和规范进行介绍,可以作为入门身份认证系统的参考。

HTTP Basic 认证

使用 HTTP Basic 认证,用户认证时浏览器自动弹出这个对话框,要求用户输入用户名和密码。

HTTP Basic Authentication

HTTP Basic 是通过浏览器实现的一种认证方式,在这种认证方式中,将用户的登录用户名和密码使用 Base64 编码后,放置在 Authorization 请求头字段,从而完成用户身份验证,完成身份认证后浏览器收到成功的响应头,并根据相应头设置 Cookie,下次登录就不用在输入密码了,整个 HTTP Basic 认证流程完成。

HTTP Basic 认证流程只进行了简单编码处理,任何截获请求的人都可以看到用户名和密码,使用这种方式通常在 HTTPS 协议下。

HTTP Basic 认证规范在 RFC7235 定义。

HTTP Digest 认证

HTTP Digest 认证是 HTTP Basic 认证的升级版,以此来改善安全方面的问题。与 HTTP Basic 的区别是认证时发送给服务端的密码使用 MD5 等摘要算法进行加密的密文。

HTTP Digest 认证在 RFC2069RFC2617 定义。

Oauth2.0 认证

OAuth 是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是 2.0 版。

OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。

Oauth2.0 可用来实现第三方登陆。

SAML2.0

SAML,全称为 Security Assertion Markup Language,是一种用于安全性断言的标记语言,目前最新版本是 2.0。

OpenID

OpenID 是一种开放的身份验证标准,由非营利性 OpenID Foundation 推广。Google,WordPress,Yahoo 和 PayPal 等组织都支持使用 OpenId 对用户进行身份验证。

CAS

CAS 是用户认证中心服务,也就是 SSO。

JAAS

JAAS 是”Java Authentication and Authorization Service“的缩写,它提供了认证与授权的基础框架与接口定义,而且提供了良好的插件化机制。本文主要探讨 JAAS 的基础概念,这些概念也是认证与授权技术中的常用概念。

X.509

X.509 是密码学里公钥证书的格式标准。 X.509 证书已应用在包括 TLS/SSL 在内的众多网络协议里,同时它也用在很多非在线应用场景里,比如电子签名服务。 X.509 证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构 CA 的签名,也可以是自签名)。

Top↑