基本认证(Basic Auth)

介绍

Basic Auth 是一种通过 HTTP 协议实现的验证方式,它在用户向服务器请求资源时,需要在请求头中附带用户名和密码的信息。 服务器会接收到请求头中的信息,并对该信息进行验证,如果验证通过,则返回请求的资源,否则返回 401 错误代码。

注意:使用 Basic Auth 时,用户名和密码会在请求头中明文传输,不推荐在生产环境中使用。

OpenResty Edge 中提供了对应的页面规则动作来实现此功能。

此动作仅有一个参数:Basic Auth 用户组,用于指定使用的用户组。

示例

OpenResty Edge 的 Basic Auth 用户通过用户组进行组织管理。 因此,需要先增加用户组。

增加 Basic Auth 用户

进入:应用 > HTTP/HTTPS > [指定应用] > HTTP Basic Auth 账号 > 新建 Basic Auth 用户组。

增加用户组:

输入用户组名称以及标签。 然后增加用户:

输入用户名和密码。

配置页面规则

增加页面规则,启动 Basic Auth 动作:

选择我们前面新建的用户组即可。

发送测试请求

发送一个不带认证信息的请求:

$ curl http://test.com/anything -v
...
< HTTP/1.1 401 Unauthorized
...

可以看到返回了 401 状态码,表示缺少认证信息。

接着发送一个带正确认证信息的请求:

$ curl http://test.com/anything -u oredge:xxxxxxxx -v
...
< HTTP/1.1 404 Not Found
...

没有返回 401,表示已经通过了 Basic Auth 认证;返回了 404 是因为请求访问了不存在的资源(/anything)。