Overview
ジェネリック セキュリティ サービスAPI (GSSAPI)認証メカニズムを使用すると、プリンシパル名を使用して Kerberos サービスに認証できます。 このメカニズムはMongoDB Enterprise Advancedに認証する場合にしか使用できません。
Kerberos(GSSAPI)認証の指定
注意
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>
を使用してください。接続文字列の認証オプションの詳細については、サーバー マニュアルの「 接続文字列オプション 」参照の認証オプションセクションを参照してください。
次のコード例では、GSSAPI
を使用して UNIX 用の Kerberos で認証を行います。
重要
正しく解析されるようにするには、必ずencodeURIComponent
メソッドを使用してプリンシパルをURI エンコードしてください。
const { MongoClient } = require("mongodb"); // Replace the placeholder values with the values for your environment in the following lines const clusterUrl = "<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
認証メカニズムを参照します。これは、ドライバーが SASL メカニズムである GSSAPI RFC- を介して認証するためです。4652
API ドキュメント
このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。