【发布时间】:2013-10-20 09:36:35
【问题描述】:
我不熟悉 RESTful API 的概念。
我正在为在线商店设计一个 RESTful API。
我还没有正确理解基于 SSL 的基本 HTTP 身份验证的概念。
这是否意味着对于每个请求,用户都必须再次输入他/她的用户名和密码?
有人能详细解释一下它的功能和用途吗?
【问题讨论】:
标签: http authentication ssl rest
我不熟悉 RESTful API 的概念。
我正在为在线商店设计一个 RESTful API。
我还没有正确理解基于 SSL 的基本 HTTP 身份验证的概念。
这是否意味着对于每个请求,用户都必须再次输入他/她的用户名和密码?
有人能详细解释一下它的功能和用途吗?
【问题讨论】:
标签: http authentication ssl rest
基本身份验证只是用户的标准 HTTP 标头,并以 base64 编码传递:
授权:基本 QWxhZGRpbjpvcGVuIHNlc2FtZQ==
(http://en.wikipedia.org/wiki/Basic_access_authentication) 。如果您通过非 ssl 连接通过此标头验证您的 REST API 调用,问题是中间的任何人都可以从您的身份验证标头中解码您的用户名和密码。
为确保您的密码安全发送,您必须使用 HTTPS 而不是正常的 HTTP 连接。 HTTP 和 HTTPS 之间的唯一区别是 HTTPS 在 TCP/IP 上使用 SSL/TSL 安全协议,而不是普通的 TCP/IP。
现在这有一个缺点,即在 CPU 上建立 HTTPS 连接比普通 HTTP 连接更昂贵。 很明显,如果您想使用此标头对每个请求的 REST 调用进行身份验证,您应该使您的 REST API 仅可用于 HTTPS 连接。
【讨论】: