<!-- review: finished -->

<a id="http-auth-basic"></a>

# Auth Basic

允许通过使用"HTTP基本认证"协议验证用户名和密码来限制对资源的访问。

访问也可以通过 [地址](https://cn.angie.software//angie/docs/configuration/modules/http/http_access.md#http-access) 或通过 [子请求结果](https://cn.angie.software//angie/docs/configuration/modules/http/http_auth_request.md#http-auth-request) 来限制。通过地址和密码同时限制访问由 [satisfy](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#satisfy) 指令控制。

<a id="configuration-example-6"></a>

## 配置示例

```nginx
location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}
```

<a id="directives-7"></a>

## 指令

<a id="index-0"></a>

<a id="id3"></a>

### auth_basic

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `auth_basic` string | `off`;         |
|--------------------------------------------------------------------------------------|--------------------------------------|
| 默认                                                                                   | `auth_basic off;`                    |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, limit_except |

通过"HTTP基本认证"协议启用用户名和密码验证。指定的参数用作 领域。参数值可以包含变量。

| `off`   | 取消从先前配置级别继承的 auth_basic 指令的效果   |
|---------|---------------------------------|

<a id="index-1"></a>

<a id="auth-basic-user-file"></a>

### auth_basic_user_file

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `auth_basic_user_file` file;         |
|--------------------------------------------------------------------------------------|--------------------------------------|
| 默认                                                                                   | —                                    |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, limit_except |

指定一个 文件 来保存用户名和密码，格式如下：

```none
# 注释
name1:password1
name2:password2:comment
name3:password3
```

文件 名可以包含变量。

支持以下密码类型：

* 使用 crypt() 函数加密；可以使用Apache HTTP Server发行版中的 `htpasswd` 工具或"openssl passwd"命令生成；
* 使用基于MD5的密码算法的Apache变体（apr1）进行哈希；可以使用相同的工具生成；
* 按照 [RFC 2307](https://datatracker.ietf.org/doc/html/rfc2307#section-5.3) 中描述的"{scheme}data"语法指定；目前实现的方案包括 PLAIN （一个示例，不应使用）、SHA （纯SHA-1哈希，不应使用）和 SSHA （加盐SHA-1哈希，一些软件包使用，尤其是OpenLDAP和Dovecot）。

#### WARNING
SHA方案的支持仅为从其他Web服务器迁移提供帮助。它不应用于新密码，因为采用的未加盐SHA-1哈希易受 [彩虹表](http://en.wikipedia.org/wiki/Rainbow_attack) 攻击。
