AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Kerberos(GSSAPI)認証

汎用セキュリティ サービスAPI (GSSAPI)認証メカニズムを使用すると、Kerberos プリンシパル名を指定して Kerberos サービスで認証できます。

注意

ページでは、ドライバーがGSSAPI KerberosGSSAPI RFC-4652 SASL メカニズムを使用して認証するため、 ではなく 認証メカニズムが参照されます。

このセクションの例では、GSSAPI認証メカニズムを指定し、次のプレースホルダー値を使用する方法を示します。

  • <Kerberos principal>: URLエンコードされたプリンシパル名。

  • <hostname>: MongoDBデプロイのネットワーク アドレスで、クライアントからアクセスできます。

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

この認証メカニズムを指定するための手順とサンプル コードについては、以下の [ ] タブまたは [Connection String ] タブを選択してください。MongoCredential

接続文字列で GSSAPI認証メカニズムを指定するには、次のアクションを実行します。

  • authMechanism URLパラメータを GSSAPI に設定する

  • (任意)authSource URLパラメータを $external に設定します

注意

GSSAPIメカニズムを指定する場合、 authSourceを$external以外の値に割り当てることはできません。

次の例では、接続文字列で認証メカニズムを指定します。

val connectionString = ConnectionString("<Kerberos principal>@<hostname>:<port>/?authSource=$external&authMechanism=GSSAPI")
val mongoClient = MongoClient.create(connectionString)

Kerberosチケットを取得するには、GSSAPI Javaライブラリは、 邦土と KDC(Key Distributor)システム プロパティを指定する必要があります。

次のコードは、これらのプロパティのサンプル値を示しています。

java.security.krb5.realm=MYREALM.ME
java.security.krb5.kdc=mykdc.myrealm.me

Kerberos の設定によっては、次の追加のMongoCredentialメカニズム プロパティを 1 つ以上指定する必要がある場合があります。

  • SERVICE_NAME

  • CANONICALIZE_HOST_NAME

  • JAVA_SUBJECT

  • JAVA_SASL_CLIENT_PROPERTIES

  • JAVA_SUBJECT_PROVIDER

重要

次の GSSAPI プロパティは、MongoCredential を使用してのみ指定できます。

  • JAVA_SUBJECT

  • JAVA_SASL_CLIENT_PROPERTIES

  • JAVA_SUBJECT_PROVIDER

これらを指定する方法については、 MongoCredentialタブを選択してください。

GSSAPI 追加プロパティの 1 つを指定するには、形式: <PROPERTY_NAME>:<value> を使用して接続文字列にそれをURLパラメーターとして含めます。

GSSAPI と追加のプロパティを使用して MongoClient をインスタンス化するコードは、次の例のようになります。

val connectionString = ConnectionString("<Kerberos principal>@<hostname>:<port>/?authSource=$external&authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:myService")
val mongoClient = MongoClient.create(connectionString)

デフォルトでは、 Kotlin ドライバーはMongoClientインスタンスごとに Kerberos チケットをキャッシュします。 配置でMongoClientインスタンスを頻繁に作成および破棄する必要がある場合は、デフォルトの Kerberos チケット キャッシュ動作を プロセスごとにキャッシュすることでパフォーマンスを向上させることができます。

プロセスごとに Kerberos チケットをキャッシュには、 MongoCredential認証メカニズムを使用する必要があります。接続文字列認証メカニズムでは JAVA_SUBJECT_PROVIDER メカニズムプロパティがサポートされていないためです。 手順を表示するには、[ MongoCredentialタブ ]を選択します。

注意

Windowsでは、Oracle の JRE は GSSAPI の実装で SSP ではなく LSA を使用するため、 Windows Active Directory および シングル サインオンの実装との相互運用性が制限されます。詳しくは、次の記事を参照してください。

MongoDBへの認証の詳細については、 MongoDB Serverマニュアルの 認証 を参照してください。

Kotlin Syncドライバーを使用して MongoClientオブジェクトを作成する方法について詳しくは、「MongoClient の作成」ガイドを参照してください。

Kotlin Syncドライバーでアプリケーションを認証するためのクラスとメソッドの詳細については、次のAPIドキュメントを参照してください。