Overview
注意
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 としてパーセント エンコードする必要があります。
アプリケーションでの GSSAPI 認証の使用
C++ドライバーで Kerberos認証メカニズムを使用する前に、Kerberos を使用するようにMongoDBデプロイを構成する必要があります。配置を構成するには、 MongoDB Server MongoDB Server 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に置き換える必要があります。
API ドキュメント
C++ドライバーでmongocxx::clientオブジェクトを作成する方法の詳細については、次のAPIドキュメントを参照してください。