エンタープライズ認証メカニズム
このガイドでは、MongoDB Enterprise Edition で使用可能な各認証メカニズム Kerberos (GSSAPI/SSPI)
とLDAP (PLAIN)
を使用して MongoDB に接続するためのサンプル コードを紹介します。
Kerberos (GSSAPI/SSPI)
注意
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
Kerberos
GSSAPI RFC-4652 経由で認証されるため、 ではなく 認証メカニズムが参照されます。 SASL メカニズムを使用します。
LDAP (PLAIN)
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
。