Overview
The PLAIN authentication mechanism allows you to use your Lightweight Directory Access Protocol (LDAP) username and password to authenticate to MongoDB. LDAP authentication uses the PLAIN Simple Authentication and Security Layer (SASL) defined in RFC-4616.
このメカニズムは、 MongoDB AtlasまたはMongoDB Enterprise Advancedに認証する場合にしか使用できません。
重要
PLAIN SASL は、クリアテキストの認証メカニズムです。 PLAIN SASL を使用して MongoDB に認証する場合は、証明書検証で TLS/SSL を使用することを強くお勧めします。
接続で TLS を有効にする方法の詳細については、 「 トランスポート層セキュリティ(TLS)の設定 」を参照してください。
コード プレースホルダー
このページのコード例では、次のプレースホルダーを使用します。
+srv
: MongoDB Atlasクラスターに接続している場合にのみ、このオプションを接続文字列のプレフィックスに含めます。+srv
オプションの詳細については、 MongoDB Serverマニュアルの「 接続文字列の形式 」を参照してください。<username>
: LDAPユーザー名。<password>
: LDAP パスワード。<hostname>
: MongoDBデプロイのネットワーク アドレス。<port>
: MongoDBデプロイのポート番号。 このパラメーターを省略すると、ドライバーはデフォルトのポート番号(27017
)を使用します。 MongoDB Atlasクラスターに接続するときにポートを指定する必要はありません。<authenticationDb>
: ユーザーの LDAP 認証情報を含むMongoDBデータベース 。 このパラメーターを省略すると、ドライバーはデフォルトのデータベース(admin
)を使用します。
このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。
重要
パーセント エンコーディング
ユーザー名とパスワードは、 MongoDB URI に含める前に、パーセント エンコードする必要があります。quote_plus()
urllib.parse モジュールで使用可能な メソッドは、このタスクを実行する 1 つの方法です 。例、 を呼び出すとquote_plus("and / or")
stringand+%2F+or
が返されます。
ユーザー名またはパスワードをMongoClient
に引数として渡す場合は、これらをパーセント エンコードしないでください。
アプリケーションでの PLAIN 認証の使用
PLAIN を使用して認証するには、authMechanism
接続オプションを PLAIN
に設定します。 このオプションは、MongoClient
コンストラクターに引数を渡す方法と、接続文字列のパラメーターを使用する方法の 2 通りがあります。
client = pymongo.MongoClient("mongodb[+srv]://<hostname>:<port>", username="<username>", password="<password>", authSource="<authenticationDb>", authMechanism="PLAIN", tls=True)
uri = ("mongodb[+srv]://<username>:<password>@<hostname>:<port>/?" "authSource=<authenticationDb>" "&authMechanism=PLAIN" "&tls=true") client = pymongo.MongoClient(uri)
API ドキュメント
PyMongoで PLAIN SASL認証メカニズムを使用する方法の詳細については、次のAPIドキュメントを参照してください。