Overview
MongoDB Enterprise Edition には、MongoDB Community Edition では使用できない認証メカニズムが含まれています。 このガイドでは、これらの認証メカニズムを使用して MongoDB を認証する方法を学習できます。 MongoDB で利用可能なその他の認証メカニズムの詳細については、「認証メカニズム 」を参照してください。
Kerberos
ジェネリック セキュリティ サービスAPI (GSSAPI) は、 Kerberos認証のインターフェースを提供します。
注意
GSSAPI で認証するには、SASL をサポートするMongoDB Cドライバーをビルドする必要があります。 ソースからドライバーをビルドしている場合は、 ENABLE_SASL cmakeオプションを使用して SASL サポートを有効にできます。
GSSAPI で認証するには、次の手順を実行します。
チケット発行チケットを取得する
Unix 環境では、まずkinitコマンドを実行して初期チケット付与チケットを取得してキャッシュする必要があります。 Windows環境を実行中している場合は、次の手順にスキップできます。
次の例では、 kinitコマンドを使用して、プリンシパルmongodbuser@EXAMPLE.COMのチケット発行チケットを取得します。 次に、 klistコマンドを使用して、 認証情報キャッシュにプリンシパルとチケットを表示します。
kinit mongodbuser@EXAMPLE.COM mongodbuser@EXAMPLE.COM's Password: klist Credentials cache: FILE:/tmp/krb5cc_1000 Principal: mongodbuser@EXAMPLE.COM Issued Expires Principal Feb 9 13:48:51 2013 Feb 9 23:48:51 2013 krbtgt/mongodbuser@EXAMPLE.COM
接続オプションの設定
次に、次の接続オプションを設定します。
Kerberos principal: 認証する Kerberos プリンシパル。authMechanism:"GSSAPI"に設定します。authMechanismProperties: 任意。 デフォルトでは、MongoDB では認証サービス名としてmongodbが使用されます。 別のサービス名を指定するには、このオプションを"SERVICE_NAME:<authentication service name>"に設定します。
これらのオプションは、次の例に示すように、接続 URI のパラメーターを介して設定できます。
auto uri = mongocxx::uri("mongodb://<Kerberos principal>@<hostname>:<port>/?" "authMechanism=GSSAPI" "&authMechanismProperties=SERVICE_NAME:<authentication service name>"); auto client = mongocxx::client(uri);
注意
前述の例に示すように、プリンシパル内の@シンボルを%40に置き換える必要があります。
PLAIN SASL
RFC 4616 で定義されている PLAIN 簡易認証とセキュリティ レイヤー(SASL) は、 TLS または別の暗号化レイヤーでよく使用されるユーザー名パスワード認証メカニズムです。
重要
PLAIN SASL は、クリアテキストの認証メカニズムです。 PLAIN SASL を使用して MongoDB に認証する場合は、証明書検証で TLS/SSL を使用することを強くお勧めします。
接続で TLS を有効にする方法の詳細については、「トランスポート層セキュリティ(TLS)の構成 」を参照してください。
SASL で認証するには、 authMechanism接続オプションをPLAINに設定します。 このオプションは、次の例に示すように、 接続stringのパラメーターを介して設定できます。
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authMechanism=PLAIN&tls=true"); auto client = mongocxx::client(uri);
API ドキュメント
C++ドライバーでmongocxx::clientオブジェクトを作成する方法の詳細については、次のAPIドキュメントを参照してください。