Docs Menu
Docs Home
/ /

Kerberos(GSSAPI)認証

注意

GSSAPI認証はMongoDB Enterpriseエディションでのみ利用できます。

ジェネリック セキュリティ サービスAPI (GSSAPI)認証メカニズムを使用すると、Kerberos プリンシパル名を使用して、 Kerberos認証用に構成されたMongoDBデプロイを認証できます。

C++ドライバーから Kerberos を使用するには、 MongoDBデプロイがすでに Kerberos認証用に構成されており、アプリケーションホストが Kerberos 認証情報を取得できる必要があります。

このページのコード例では、次のプレースホルダーを使用します。

  • <kerberos_principal>: 認証する Kerberos プリンシパル。

  • <hostname>: 配置内の mongod または mongos ホストの完全修飾ドメイン名(FQDN)。 Kerberos では、 邦土 を正しく解決するために、 IPアドレスや短いホスト名ではなく FQDN が必要です。

  • <port>: MongoDBデプロイのポート番号。このパラメーターを省略すると、 MongoDB はデフォルトのポート番号(27017)を使用します。

このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。

注意

MongoDB接続 URI に <kerberos_principal> を埋め込む場合は、@ 文字を %40 としてパーセント エンコードする必要があります。

C++ドライバーで Kerberos認証メカニズムを使用する前に、Kerberos を使用するようにMongoDBデプロイを構成する必要があります。配置を構成するには、 MongoDB Server MongoDB Server 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に置き換える必要があります。

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

戻る

AWS IAM

項目一覧