REST API 通过 SSL 的 HTTP 基本身份验证

标签 http authentication ssl rest

我是 RESTful API 概念的新手。

我正在为在线商店设计 RESTful API。

我没有正确理解基于 SSL 的基本 HTTP 身份验证的概念。

这是否意味着对于每个请求,用户都必须再次输入他/她的用户名和密码?

有人可以详细解释它的功能和用途吗?

最佳答案

基本身份验证只是一个带有用户的标准 HTTP header ,并以 base64 编码传递:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

( http://en.wikipedia.org/wiki/Basic_access_authentication )。如果您通过非 ssl 连接通过此 header 验证您的其余 API 调用,问题是中间的任何人都可以从您的 auth header 解码您的用户名和密码。

为确保您的密码安全发送,您必须使用 HTTPS 而不是普通的 HTTP 连接。 HTTP 和 HTTPS 之间的唯一区别是 HTTPS 使用基于 TCP/IP 的 SSL/TSL 安全协议(protocol),而不是普通的 TCP/IP。

现在这有一个缺点,即建立 HTTPS 连接比普通 HTTP 连接在 cpu 上的开销更大。 很明显,如果您想要使用此 header 对每个请求的 rest 调用进行身份验证,您应该使您的 rest API 仅可用于 HTTPS 连接。

关于REST API 通过 SSL 的 HTTP 基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332821/

相关文章:

python - 编写优秀的 Twisted 网络资源

java - 如何创建安全的 vaadin 14 登录表单?

java - Ajax 向 Servlet 发出请求时返回 404

java - 如何在java中使用http put请求将本地文件发送到云组织?

android - $http 调用不适用于 Ionic Android 构建

session - Laravel 多域 session

c++ - 无法使用 C++ 代码向 MongoDB 进行身份验证

rest - 通过 AWS API Gateway 代理调用 SSL 端点

haskell - 如何向 http-client-tls 提供客户端证书?

http - Chrome 浏览器未将 if-modified-since header 发送到服务器