Docs Menu
Docs Home
/
MongoDB マニュアル
/ / / /

Windows で Kerberos 認証を使用して自己管理型 MongoDB を構成する

項目一覧

  • Overview
  • 前提条件
  • 手順
  • その他の考慮事項
  • テストと検証

MongoDB Enterprise は、 Kerberos サービスを使用した認証をサポートしています。 Kerberos は、大規模なクライアント/サーバー システム向けの業界標準の認証プロトコルです。 Kerberos を使用すると、MongoDB とアプリケーションは既存の認証インフラストラクチャとプロセスを活用できます。 MongoDB Enterprise は MIT 実装 のみをサポートしています Kerberos の

Kerberos 配置の セットアップと構成 については、このドキュメントの範囲外です。 このチュートリアルでは、 が各mongod.exe および インスタンスに対して Kerberosmongos.exe サービス プリンシパル を構成していることを前提としています。

レプリカセットとシャーディングされたクラスターの場合は、IP アドレスや修飾されていないホスト名ではなく、構成で完全修飾ドメイン名(FQDN)が使用されていることを確認してください。 Kerberos レルムを正しく解決し、接続できるようにするには、GSSAPI 用の FQDN を使用する必要があります。

1

Kerberos ユーザーを初めて追加する場合は、Kerberos サポートなしでmongod.exeを開始します。

Kerberos ユーザーがすでに MongoDB に存在し、 ユーザーの作成に必要な特権 がある場合は、Kerberos サポート付きでmongod.exeを起動できます。

配置に応じて、追加の設定を含めます。

注意

mongodmongos は、デフォルトで localhost にバインドされます。配置のノードが異なるホスト上で実行されている場合、またはリモート クライアントを配置に接続する場合は、--bind_ip または net.bindIp を指定する必要があります。

3

Kerberos プリンシパル<username>@<KERBEROS REALM>$externalデータベースの MongoDB に追加します。 ALL UPPERCSEで Kerberos レルムを指定します。 $externalデータベースでは、 mongod.exeが外部ソース(例: Kerberos)を使用して認証します。 ユーザーの特権を指定するには、ユーザーにロールを割り当てます。

$external認証ユーザー(Kerberos、LDAP、または x.509 ユーザー)でクライアント セッションと因果整合性の保証を使用するには、ユーザー名を 10k バイトより大きくすることはできません。

次の例では、 recordsデータベースへの読み取り専用アクセス権を持つ Kerberos プリンシパルreportingapp@EXAMPLE.NETを追加します。

use $external
db.createUser(
{
user: "reportingapp@EXAMPLE.NET",
roles: [ { role: "read", db: "records" } ]
}
)

必要に応じて、追加のプリンシパルを追加します。 Kerberos を使用して認証するすべてのユーザーごとに、MongoDB で対応するユーザーを作成する必要があります。 ユーザーの作成と管理の詳細については、「ユーザー管理コマンド 」を参照してください。

4

mongod.exeサービス プリンシパル アカウント として を開始する必要があります。

Kerberos サポートでmongod.exeを起動するには、 mongod.exeパラメータauthenticationMechanismsGSSAPIに設定します。

mongod.exe --setParameter authenticationMechanisms=GSSAPI <additional mongod.exe options>

構成に必要な追加オプションを含めます。 たとえば、リモート クライアントを配置に接続する場合、または配置ノードを異なるホスト上で実行する場合は、 --bind_ipを指定します。

たとえば、次の例では、Kerberos をサポートするスタンドアロンのmongod.exeインスタンスが起動されます。

mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI --bind_ip localhost,<hostname(s)|ip address(es)>
5

mongo.exe shell クライアントを Kerberos プリンシパルapplication@EXAMPLE.NETとして接続します。

コマンドラインから接続と認証を行うことができます。

cmd.exe を使用:

mongo.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase=$external --username reportingapp@EXAMPLE.NET

Windows PowerShell を使用:

mongo.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase='$external' --username reportingapp@EXAMPLE.NET

Kerberos 名と一致するホスト名を持つシステムに接続する場合は、IP アドレスや修飾されていないホスト名ではなく、 --hostオプションに完全修飾ドメイン名(FQDN)を指定していることを確認してください。

Kerberos 名と一致しないシステムに接続する場合は、まずmongo.exemongod.exeに接続し、次にmongo.exe shell から、 db.auth()メソッドを使用して$externalデータベースで認証します。

use $external
db.auth( { mechanism: "GSSAPI", user: "reportingapp@EXAMPLE.NET" } )

Kerberos サポートでmongos.exeを起動するには、 mongos.exeパラメータauthenticationMechanismsGSSAPIに設定します。 You must start mongos.exe as the service principal account:

mongos.exe --setParameter authenticationMechanisms=GSSAPI <additional mongos options>

構成に必要な追加オプションを含めます。 たとえば、リモート クライアントを配置に接続する場合、または配置ノードを異なるホスト上で実行する場合は、 --bind_ipを指定します。

たとえば、次の例では、Kerberos をサポートするmongosインスタンスが起動されます。

mongos.exe --setParameter authenticationMechanisms=GSSAPI --configdb shard0.example.net, shard1.example.net,shard2.example.net --keyFile C:\<path>\mongos.keyfile --bind_ip localhost,<hostname(s)|ip address(es)>

構成に必要な追加のmongos.exeオプションを変更するか、含めます。 たとえば、シャーディングされたクラスター ノードの内部認証に--keyFileを使用する代わりに、x.509 ノード認証を使用できます。

setspn.exeを使用して、 mongod.exemongos.exeサービスを実行しているアカウントにサービス プリンシパル名(SPN)を割り当てます。

setspn.exe -S <service>/<fully qualified domain name> <service account name>

mongod.exeがサービスアカウント名mongodtestを使用してtestserver.mongodb.commongodbという名前のサービスとして実行する場合は、次のように SPN を割り当てます。

setspn.exe -S mongodb/testserver.mongodb.com mongodtest

Kerberos 認証( GSSAPI (Kerberos))は、次のものと一緒に機能できます。

  • MongoDB の SCRAM 認証メカニズム 。

  • MongoDB の LDAP 認証メカニズムは次のとおりです。

  • x.509 用の MongoDB の認証メカニズム

次のようにメカニズムを指定します。

--setParameter authenticationMechanisms=GSSAPI,SCRAM-SHA-256

他のメカニズムが使用されている場合のみ、追加してください。 このパラメーター設定は、クラスター ノードの MongoDB の内部認証には影響しません。

構成手順を完了したら、 mongokerberosツールを使用して構成を検証できます。

mongokerberosは、MongoDB で使用するプラットフォームの Kerberos 構成を確認し、MongoDB クライアントからの Kerberos 認証が期待どおりに機能することをテストするのに便利な方法を提供します。 詳しくは、 mongokerberosのドキュメントを参照してください。

mongokerberos は MongoDB Enterprise でのみ利用可能です。

戻る

Linux での構成