Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Go
/

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

このガイドでは、MongoDB Enterprise Edition で利用可能な認証メカニズムを使用して、MongoDB で認証する方法を学習できます。 認証メカニズムは、ドライバーとサーバーが接続前にクライアントの ID を確認し、セキュリティを確保するためのプロセスです。

MongoDB Enterprise Edition の最新バージョンでは、次の認証メカニズムを使用できます。

  • GSSAPI/Kerberos

  • LDAP (Plain)

別のメカニズムを使用して認証するには、 認証メカニズムの基礎ページを参照してください。 MongoDB クラスターへの接続を確立する方法の詳細については、「接続ガイド 」を参照してください。

次の方法で MongoDB に接続するときに、認証メカニズムと認証情報を指定できます。

  • 接続string URIを使用します。 エンタープライズ認証で接続string URI を使用する方法の詳細については、 接続文字列 URI に関するstringマニュアルのエントリを参照してください。

  • Credentialタイプで認証情報と認証メカニズムを指定します。

ジェネリック セキュリティ サービス API(GSSAPI)認証メカニズムにより、ユーザーはユーザーのプリンシパルを使用して Kerberos サービスへの認証を行えます。

ビルドgssapi タグ を使用する必要があります および cgo サポート を指定します Kerberos 認証を使用するコンパイル中に。cgoサポートは、以前に環境変数を別のプラットフォームにクロスコンパイルしない限り、デフォルトで有効になっています。 gssapiビルド タグを使用するには、次のコマンドでコードをコンパイルします。

go build -tags gssapi

この例では、次のプレースホルダーを使用して認証メカニズムを指定します。

  • username: Kerberos プリンシパル。 サンプル ユーザー名はmyuser@KERBEROS.EXAMPLE.COMです。

  • password: Kerberos ユーザーのパスワード。 コード内でパスワードが公開されないように、 keytabファイルにパスワードを保存することもできます。

  • connection uri: 接続string URI。

次のコードは、Kerberos で認証し、認証設定を持つクライアントを作成するためのCredential構造体を定義する方法を示しています。

credential := options.Credential{
AuthMechanism: "GSSAPI",
Username: "<username>",
Password: "<password>",
PasswordSet: true,
}
uri := "<connection uri>"
clientOpts := options.Client().ApplyURI(uri).SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

認証キーをkeytabファイルに保存する場合は、 Credential構造体でパスワードやPasswordSetフィールドを定義する必要はありません。 kinitバイナリを使用して、Kerberos プリンシパルを認証するための認証情報キャッシュを初期化できます。 kinitバイナリの詳細については、 Oracle のドキュメントを参照してください。

次のコマンドは、サンプル ユーザー名の認証情報キャッシュを呼び出す方法を示しています。

kinit myuser@KERBEROS.EXAMPLE.COM

あるいは、 URL エンコードされ た接続string URI を使用して認証することもできますKerberos プリンシパル、パスワード、 ( サーバーのネットワーク アドレス)hostnameMongoDB

uri := "mongodb://<username>:<password>@<hostname>/?authMechanism=GSSAPI"

Credential構造体のAuthMechanismPropertiesフィールドを使用して、認証メカニズムに追加のプロパティを指定できます。 Kerberosのデフォルトのサービス名は「 MongoDB 」です。 SERVICE_NAMESERVICE_REALM次のコードは、Credential 構造体を定義するときに、 フィールドと フィールドにカスタム値を設定する方法を示しています。

credential := options.Credential{
AuthMechanism: "GSSAPI",
Username: "<username>",
Password: "<password>",
AuthMechanismProperties: map[string]string{
"SERVICE_REALM": "<Kerberos service realm>",
"SERVICE_NAME": "<service name>",
},
}

追加のプロパティについては、認証プロパティ に関するサーバー マニュアルのエントリを参照してください。

ディレクトリ サーバーのユーザー名とパスワードを使用して、LDAP(Lightweight Directory Access Protocol)サーバーで認証できます。

警告

この認証メカニズムはパスワードをプレーンテキストでサーバーに送信するため、このメカニズムは TLS 接続でのみ使用してください。

この例では、次のプレースホルダーを使用して認証メカニズムを指定します。

  • username: LDAP ユーザー名

  • password: LDAP パスワード

  • connection uri: 接続string URI

次のコードは、LDAP で認証し、認証設定を持つクライアントを作成するためのCredential構造体を定義する方法を示しています。

credential := options.Credential{
AuthMechanism: "PLAIN",
Username: "<username>",
Password: "<password>",
}
uri := "<connection uri>"
clientOpts := options.Client().ApplyURI(uri).SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

あるいは、接続string URI を使用して認証することもできます。これには、 LDAPユーザー名とパスワード、hostname としてMongoDBサーバーのネットワーク アドレスを指定します。

uri := "mongodb://<username>:<password>@<hostname>/?authMechanism=PLAIN"

注意

このガイドの概念の詳細については、次のドキュメントを参照してください。

戻る

認証

項目一覧