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

Kerberos(GSSAPI)認証

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

注意

用語

ページでは、認証メカニズムを参照する場合は GSSAPIを使用し、基礎となるプロトコルまたはサービスを参照する場合は Kerberosを使用します。ドライバーは、Kerberos プロトコルの上に構築された GSSAPI RFC-4752 SASL メカニズムを使用して認証します。

次のセクションには、次のプレースホルダー値を使用するコード例が含まれています。

  • <username>: URLでエンコードされたプリンシパル名。例: "username%40REALM.ME"

  • <hostname>:クライアントからアクセス可能なMongoDBデプロイのネットワーク アドレス

  • <port>: MongoDBデプロイのポート番号

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

次の例では、接続stringを使用して GSSAPI を認証します。

MongoClient mongoClient = MongoClients .create("<username>@<hostname>:<port>/?authSource=$external&authMechanism=GSSAPI");

Kerberos チケットを取得するには、GSSAPI Java ライブラリでは、邦土と Key Distribution Center (KDC) JVM システム プロパティを指定する必要があります。次の例は、これらのプロパティを設定する方法を示しています。

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

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

  • SERVICE_NAME

  • CANONICALIZE_HOST_NAME

  • JAVA_SUBJECT

  • JAVA_SASL_CLIENT_PROPERTIES

  • JAVA_SUBJECT_PROVIDER

これらのプロパティを指定する手順とサンプル コードについては、以下の [Connection String ] タブまたは [MongoCredential ] タブを選択してください。

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

次の例では、GSSAPI に対して認証し、SERVICE_NAME プロパティを指定します。

MongoClient mongoClient = MongoClients .create("<username>@<hostname>:<port>/?authSource=$external&authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:myService");

重要

次の GSSAPI プロパティは、MongoCredential インスタンスでのみ指定できます。

  • JAVA_SUBJECT

  • JAVA_SASL_CLIENT_PROPERTIES

  • JAVA_SUBJECT_PROVIDER

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

デフォルトでは、Java Reactive Streams ドライバーは、Kerberos チケットを作成した MongoClient インスタンスによってキャッシュします。配置で MongoClient インスタンスが頻繁に作成されて破棄される場合は、デフォルトの Kerberos チケットキャッシングの動作をプロセスによってキャッシングするように変更することで、パフォーマンスを向上させることができます。

重要

接続文字列認証メカニズムは JAVA_SUBJECT_PROVIDER メカニズムプロパティをサポートしないため、デフォルトのキャッシング動作を変更するには MongoCredential クラスを使用する必要があります。

プロセスによって Kerberos チケットをキャッシュには、次の例に示すように、JAVA_SUBJECT_PROVIDER メカニズムプロパティを指定し、MongoCredentialインスタンスに KerberosSubjectProvider を指定します。

/* All MongoClient instances sharing this instance of KerberosSubjectProviderwill share a Kerberos ticket cache */String myLoginContext = "myContext";MongoCredential credential = MongoCredential .createGSSAPICredential("<username>"); /* Login context defaults to "com.sun.security.jgss.krb5.initiate"if unspecified in KerberosSubjectProvider */credential = credential .withMechanismProperty(MongoCredential.JAVA_SUBJECT_PROVIDER_KEY, new KerberosSubjectProvider(myLoginContext));

注意

Windows では、Oracle の JRE は GSSAPI の実装で ローカル セキュリティ オーソリティ (LSA) を使用し、セキュリティ サポート プロバイダー インターフェース (SSPI) は使用しません。これにより、Windows Active Directory およびシングル サインオンの実装との相互運用性が制限されます。詳細については、以下のリソースを参照してください。

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

Java Reactive Streams ドライバーを使用して MongoClient オブジェクトを作成する方法の詳細については、「MongoDB への接続」ガイドを参照してください。

このガイドで言及されているクラスとメソッドについて詳しくは、次の API ドキュメントを参照してください。