# 认证机制（SCRAM、x.509）

URL: https://caijiao.org/mongodb/07-security/02-auth
Source: docs/mongodb/07-security/02-auth.md
Description: 本章节介绍 MongoDB 的认证机制，包括 SCRAM 和 X.509 证书认证，保障数据库访问安全。

[MongoDB](/mongodb/) 支持多种认证机制，用于验证连接用户身份，保护数据安全。

## SCRAM（Salted Challenge Response Authentication Mechanism）

SCRAM 是 MongoDB 默认的用户名密码认证机制，具有高安全性和抗重放攻击能力。

### 工作原理

- 客户端和服务器通过多轮加密挑战与响应完成认证。
- 密码不会明文传输，存储时进行盐值加密。

### 特点

- 支持 SCRAM-SHA-1 和 SCRAM-SHA-256 两种版本。
- 推荐使用 SCRAM-SHA-256 以增强安全性。

## X.509 证书认证

基于 TLS/SSL 的客户端证书认证，适用于企业环境中更高安全需求。

### 配置要求

- 服务器启用 TLS/SSL。
- 客户端使用有效的 X.509 证书连接。
- 证书中包含的 DN（Distinguished Name）用于映射用户身份。

### 优点

- 支持无密码认证，基于证书链信任。
- 适合自动化和大规模安全管理。

## 启用认证示例

在 `mongod.conf` 配置文件启用认证：

```yaml
security:
  authorization: enabled
  clusterAuthMode: x509
````

## 总结

选择合适的认证机制，结合加密通信，能有效保障 MongoDB 数据库的访问安全。
