Overview
X.509 認証メカニズムでは、サーバーとクライアントは TLSプロトコルを使用して X.509 公開鍵証明書を交換します。このメカニズムを使用して、 MongoDB Atlas、 MongoDB Enterprise Advanced、 MongoDB Community Edition を認証できます。
Tip
X.509 メカニズム
Node.jsドライバーで TLS/SSL を使用する方法については、「接続で TLS を有効にする」ガイドを参照してください。
X.509 証明書の詳細については、 MongoDB Serverマニュアルの「 x.509 証明書を使用した自己管理型配置でクライアントの認証 」を参照してください。
コード プレースホルダー
このページのコード例では、次のプレースホルダーを使用します。
<cluster_url>
: MongoDBデプロイのネットワーク アドレス。<pem_certificate_file_path>
:クライアントPEM 証明ファイルへのパス。
コード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。
X.509 認証の指定
この認証メカニズムを指定するには、接続文字列: の次のパラメーターを設定します。
authMechanism
パラメーターをMONGODB-X509
に設定するtls
パラメーターをtrue
に設定する
接続 URI のパラメーターとして、クライアント証明書ファイルの場所を tlsCertificateKeyFile
の値として渡します。
重要
正しく解析されるようにするには、必ず encodeURIComponent
メソッドを使用して証明書ファイルのパスを URI エンコード してください。
const { MongoClient } = require("mongodb"); // Replace the following with values for your environment. const clusterUrl = "<cluster_url>"; const clientPEMFile = encodeURIComponent("<pem_certificate_file_path>"); const authMechanism = "MONGODB-X509"; // Replace the following with your MongoDB deployment's connection string. const uri = `mongodb+srv://${clusterUrl}/?authMechanism=${authMechanism}&tls=true&tlsCertificateKeyFile=${clientPEMFile}`; // Create a new MongoClient const client = new MongoClient(uri); // Function to connect to the server async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
TLS のオプション
次の表では、接続 URI で設定できる TLS オプションについて説明します。
パラメーター名 | タイプ | デフォルト値 | 説明 |
---|---|---|---|
| ブール値 |
| 接続で TLS を有効にするかどうかを指定します。 |
| ブール値 |
| 無効な証明書と一致しないホスト名を許可するかどうかを指定します。 |
| string | TLS 接続で使用される単一のまたは一連の信頼できる証明機関を含むファイルへのパス。 | |
| string | クライアント証明書ファイルまたはクライアント秘密キー ファイルへのパス。両方必要な場合は、2 つを 1 つのファイルに連結する必要があります。 | |
| バッファまたは文字列 | クライアントの秘密キーを復号化するためのパスワードを含む文字列またはバッファ。 | |
| ブール値 |
| ドライバーが無効な証明書を使用して接続することを許可するかどうかを指定します。 |
| ブール値 |
| サーバーのホスト名と TLS 証明書のホスト名が一致しない場合にドライバーがエラーを発生させるかどうかを指定します。 |