Mongodb 身份验证
虽然授权着眼于确保客户端访问系统,但是一旦授权进入系统,身份验证将检查客户端在 MongoDB 中具有哪种访问类型。
有各种认证机制,下面只是其中的一部分。
步骤 1: 使用 x.509 证书对客户端进行身份验证 - 证书基本上是客户端和 MongoDB 服务器之间的可信签名。
因此,不是输入用户名和密码来连接服务器,而是在客户端和 MongoDB 服务器之间传递证书。客户端基本上会有一个客户端证书,该证书将被传递到服务器以进行身份验证。每个客户端证书对应单个 MongoDB 用户。因此 MongoDB 中的每个用户都必须拥有自己的证书才能对 MongoDB 服务器进行身份验证。
为确保此工作,必须遵循以下步骤;
- 必须从有效的第三方机构购买有效证书并将其安装在 MongoDB 服务器上。
- 客户端证书必须具有以下属性(单个证书颁发机构(CA)必须为客户端和服务器颁发证书。客户端证书必须包含以下字段 -
keyUsage
和extendedKeyUsage
。 - 连接到 MongDB 服务器的每个用户都需要具有单独的证书。
步骤 2: 在 Windows 上使用 Kerbero
s 身份验证配置 MongoDB - Kerberos 是一种在大型客户端 - 服务器环境中使用的身份验证机制。
这是一种非常安全的机制,只有在加密密码时才允许使用密码。好吧,MongoDB 可以对现有的基于 Kerberos 的系统进行身份验证。
步骤 3: 启动 mongod.exe
服务器进程。
步骤 4: 启动 mongo.exe 客户端进程并连接到 MongoDB 服务器。
步骤 5: 在 MongoDB 中添加一个用户,它基本上是 $external
数据库的 Kerberos 主体名称。 $external
数据库是一个特殊的数据库,它告诉 MongoDB 根据 Kerberos 系统而不是自己的内部系统对该用户进行身份验证。
> use $external
db.createUser(
{
user: "user1@example.NET",
roles: [
{
role: "read" , db: "Marketing"}
}
]
}
步骤 6: 使用以下命令启动带有 Kerberos 支持的 mongod.exe
mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI
然后,你现在可以将 Kerberos 用户和 Kerberos 身份验证连接到数据库。