Docs Menu
Docs Home
/ / /
C++ ドライバー
/

エンタープライズ認証メカニズム

項目一覧

  • Overview
  • Kerberos
  • チケット発行チケットを取得する
  • 接続オプションの設定
  • PLAIN SASL
  • API ドキュメント

MongoDB Enterprise Edition includes authentication mechanisms that aren't available in MongoDB Community Edition. このガイドでは、これらの認証メカニズムを使用して MongoDB を認証する方法を学習できます。 MongoDB で利用可能なその他の認証メカニズムについて詳しくは、「 認証メカニズム 」を参照してください。

ジェネリック セキュリティ サービスAPI (GSSAPI) は、 Kerberos認証のインターフェースを提供します。

注意

GSSAPI で認証するには、SASL をサポートするMongoDB Cドライバーをビルドする必要があります。 ソースからドライバーをビルドしている場合は、 ENABLE_SASL cmakeオプションを使用して SASL サポートを有効にできます。

GSSAPI で認証するには、次の手順を実行します。

1

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
2

次に、次の接続オプションを設定します。

  • 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に置き換える必要があります。

RFC4616 で定義されている 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);

C++ドライバーでmongocxx::clientオブジェクトを作成する方法の詳細については、次のAPIドキュメントを参照してください。

戻る

認証