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 身份驗證連線到資料庫。