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
接続オプションの設定
次に、次の接続オプションを設定します。
username: 認証する Kerbos プリンシパル。authMechanism:"GSSAPI"に設定します。authMechanismProperties: 任意。 デフォルトでは、MongoDB では認証サービス名としてmongodbが使用されます。 別のサービス名を指定するには、このオプションを"SERVICE_NAME:<authentication service name>"に設定します。
これらのオプションは、次の例に示すように、接続 URI のパラメーターを介して設定できます。
const char *uri = "mongodb://mongodbuser%40EXAMPLE.COM@<hostname>:<port>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<authentication service name>"); mongoc_client_t *client = mongoc_client_new(uri);
注意
前述の例に示すように、プリンシパル内の@シンボルを%40に置き換える必要があります。
重要
カンマ文字がパーセント エンコードされている場合でも、カンマ(,)文字を含むプロパティ値を authMechanismProperties接続文字列オプションとして指定することはできません。 authMechanismPropertiesカンマを含む プロパティ値を指定するには、 mongoc_uri_set_mechanism_properties() メソッドを使用してオプションを設定します。
PLAIN SASL
RFC 4616 で定義されている PLAIN 簡易認証とセキュリティ レイヤー(SASL) は、 TLS または別の暗号化レイヤーでよく使用されるユーザー名パスワード認証メカニズムです。PLAIN SASL認証を使用するには、SASL サポートを持つCドライバーをコンパイルする必要があります。
重要
PLAIN SASL は、クリアテキストの認証メカニズムです。 PLAIN SASL を使用して MongoDB に認証する場合は、証明書検証で TLS/SSL を使用することを強くお勧めします。
SASL で認証するには、 authMechanism接続オプションをPLAINに設定します。 このオプションは、次の例に示すように、 接続stringのパラメーターを介して設定できます。
const char *uri = "mongodb://<username>:<password>@<hostname>:<port>/?authMechanism=PLAIN"); mongoc_client_t *client = mongoc_client_new(uri);
API ドキュメント
Cドライバーでアプリケーションを認証する方法の詳細については、次のAPIドキュメントを参照してください。