エンタープライズ認証メカニズム
Overview
MongoDB Enterprise Edition includes authentication mechanisms that aren't available in 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
に置き換える必要があります。
PLAIN SASL
RFC4616 で定義されている 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ドキュメントを参照してください。