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

Kerberos(GSSAPI)認証メカニズム

ジェネリック セキュリティ サービスAPI (GSSAPI)認証メカニズムを使用すると、プリンシパル名を使用して Kerberos サービスに認証できます。 このメカニズムはMongoDB Enterprise Advancedに認証する場合にしか使用できません。

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

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

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

  • connection_uri: 接続string URI。

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

go build -tags gssapi

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

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

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

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

kinit myuser@KERBEROS.EXAMPLE.COM

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

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

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

credential := options.Credential{
AuthMechanism: "GSSAPI",
Username: "<kerberos_principal>",
Password: "<password>",
AuthMechanismProperties: map[string]string{
"SERVICE_REALM": "<kerberos_service_realm>",
"SERVICE_NAME": "<service_name>",
},
}

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

このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

LDAP (PLAIN)

項目一覧