Mongodb 身份验证

虽然授权着眼于确保客户端访问系统,但是一旦授权进入系统,身份验证将检查客户端在 MongoDB 中具有哪种访问类型。

有各种认证机制,下面只是其中的一部分。

步骤 1: 使用 x.509 证书对客户端进行身份验证 - 证书基本上是客户端和 MongoDB 服务器之间的可信签名。

因此,不是输入用户名和密码来连接服务器,而是在客户端和 MongoDB 服务器之间传递证书。客户端基本上会有一个客户端证书,该证书将被传递到服务器以进行身份​​验证。每个客户端证书对应单个 MongoDB 用户。因此 MongoDB 中的每个用户都必须拥有自己的证书才能对 MongoDB 服务器进行身份验证。

为确保此工作,必须遵循以下步骤;

  1. 必须从有效的第三方机构购买有效证书并将其安装在 MongoDB 服务器上。
  2. 客户端证书必须具有以下属性(单个证书颁发机构(CA)必须为客户端和服务器颁发证书。客户端证书必须包含以下字段 - keyUsageextendedKeyUsage
  3. 连接到 MongDB 服务器的每个用户都需要具有单独的证书。

步骤 2: 在 Windows 上使用 Kerberos 身份验证配置 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 身份验证连接到数据库。