Overview
PLAIN認証メカニズムを使用すると、LDAP(Lightweight Directory Access Protocol)ユーザー名とパスワードを使用してMongoDB.LDAP認証では、RFC-4616 で定義されている PLAIN 簡易認証とセキュリティ レイヤー(SASL)が使用されます。
このメカニズムは、 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 に含める前に、パーセント エンコードする必要があります。urllib.parse モジュールで使用可能な quote_plus() メソッドは、このタスクを実行する 1 つの方法です 。例、quote_plus("and / or") を呼び出すと string and+%2F+or が返されます。
ユーザー名またはパスワードをMongoClientに引数として渡す場合は、これらをパーセント エンコードしないでください。
アプリケーションでの PLAIN 認証の使用
PLAIN を使用して認証するには、authMechanism 接続オプションを PLAIN に設定します。 このオプションは、MongoClient コンストラクターに引数を渡す方法と、接続文字列のパラメーターを使用する方法の 2 通りがあります。
注意
authMechanismProperties値にカンマが含まれている場合は、認証オプションを設定するためにMongoClientコンストラクタを使用する必要があります。
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ドキュメントを参照してください。