Docs Menu
Docs Home
/ / /
Node.js
/ /

エンタープライズ認証メカニズム

項目一覧

  • Kerberos (GSSAPI/SSPI)
  • LDAP (PLAIN)

このガイドでは、MongoDB Enterprise Edition で使用可能な各認証メカニズム Kerberos (GSSAPI/SSPI)LDAP (PLAIN)を使用して MongoDB に接続するためのサンプル コードを紹介します。

注意

Node.js ドライバーは、MIT Kerberos ライブラリを使用して UNIX では Kerberos をサポートし、SSI API を使用して Windows では Kerberos をサポートします。

GSSAPI認証メカニズムは、ユーザー プリンシパルを使用して Kerberos サービスを認証します。

この認証メカニズムを指定するには、接続stringでオプションを指定する際に次のアクションを実行します。

  • authMechanismパラメータをGSSAPIに設定します。

  • mongodb以外の値を使用する場合は、 authMechanismPropertiesパラメータにSERVICE_NAME値を設定します。

  • カスタム サービス邦土が必要な場合は、 authMechanismPropertiesパラメータにSERVICE_REALM値を指定します。

  • ホスト名の正規化が必要な場合は、 authMechanismPropertiesパラメータにCANONICALIZE_HOST_NAME値を指定します。 このプロパティは、次の値を取ることができます。

    • none:(デフォルト)ホスト名の正規化を実行しません

    • forward: DNS のフォワードルックアップを実行してホスト名を正規化します

    • forwardAndReverse: DNS のフォワードルックアップを行い、次にその値に対してリバースルックアップを実行してホスト名を正規化します

重要

gssapiServiceNameパラメータは非推奨であり、ドライバーの将来のバージョンで削除される可能性があります。 代わりに、接続 URI でauthMechanismProperties=SERVICE_NAME:<your service name>を使用してください。 詳細については、 authMechanismPropertiesパラメーターのドキュメント を参照してください。

次のコード サンプルでは、 GSSAPIを使用して UNIX 用の Kerberos で認証を行います。

重要

正しく解析されるようにするには、必ずencodeURIComponentメソッドを使用してプリンシパルをURI エンコードしてください。

const { MongoClient } = require("mongodb");
// specify the placeholder values for your environment in the following lines
const clusterUrl = "<MongoDB cluster URL>";
const principal = encodeURIComponent("<Kerberos principal and realm>");
const serviceRealm = "<Kerberos service realm>";
const canonicalizationSetting = "<canonicalization setting>";
const authMechanismProperties = `SERVICE_REALM:${serviceRealm},CANONICALIZE_HOST_NAME:${canonicalizationSetting}`;
const authMechanism = "GSSAPI";
// Connection URI
const uri = `mongodb+srv://${principal}@${clusterUrl}/?authMechanism=${authMechanism}&authMechanismProperties=${authMechanismProperties}`;
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);

注意

このメソッドでは、ドライバーはGSSAPI KerberosGSSAPI RFC-4652 経由で認証されるため、 ではなく 認証メカニズムが参照されます。 SASL メカニズムを使用します。

PLAIN認証メカニズムは、ユーザー名とパスワードを使用して LDAP(Lightweight Directory Access Protocol)サーバーで認証します。

この認証メカニズムを指定するには、次のサンプル コードに示すように、authMechanism パラメータを PLAIN に設定し、 LDAPユーザー名とパスワードを接続stringに含めます。

const { MongoClient } = require("mongodb");
// specify the placeholder values for your environment in the following lines
const clusterUrl = "<MongoDB cluster URL>";
const ldapUsername = "<LDAP username>";
const ldapPassword = "<LDAP password>";
const authMechanism = "PLAIN";
// Connection URI
const uri = `mongodb+srv://${ldapUsername}:${ldapPassword}@${clusterUrl}/?authMechanism=${authMechanism}`;
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);

注意

認証メカニズムは 、RFC-4616 で定義されている PLAIN 簡易認証とセキュリティ層(SASL) を使用して認証するため、 ではなく という名前が付けられていますPLAIN LDAP

戻る

認証メカニズム