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ドキュメントを参照してください。