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

自己管理型配置での Kerberos 認証

項目一覧

  • Overview
  • Kerberos コンポーネントと MongoDB
  • 操作上の考慮事項
  • Kerberos 化された MongoDB 環境
  • テストと検証

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

Kerberos ベースのシステムでは、認証された通信のすべての参加者は「プリンシパル」と呼ばれ、すべてのプリンシパルには一意の名前が必要です。

プリンシパルは、 Realmと呼ばれる管理単位に属します。 Kerberos キーディストリビューションセンター(KDC)は、各Realmのプリンシパルとプリンシパルに関連する「秘密キー」のデータベースを維持します。

クライアント サーバー認証では、クライアントは KDC に特定のアセットへのアクセスのための「チケット」を要求します。 KDC は、クライアントのシークレットとサーバーのシークレットを使用してチケットを作成し、クライアントとサーバーが相互に認証できるようにしますが、シークレットは非表示にされます。

Kerberos サポート用の MongoDB の構成では、ユーザー プリンシパルサービス プリンシパルの 2 種類のプリンシパル名が重要になります。

Kerberos を使用して認証するには、MongoDB に Kerberos ユーザー プリンシパルを$externalデータベースに追加する必要があります。 ユーザー プリンシパル名の形式は次のとおりです。

<username>@<KERBEROS REALM>

Kerberos を使用して認証するすべてのユーザーごとに、 $externalデータベース内の MongoDB に対応するユーザーを作成する必要があります。

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

MongoDB にユーザーを追加する方法と、そのユーザーとして認証する方法の例については、「 Linux で Kerberos 認証を使用して自己管理型 MongoDB を構成する 」および「 Windows で Kerberos 認証を使用して自己管理型 MongoDB を構成する 」を参照してください。

Tip

以下も参照してください。

MongoDB でユーザーの作成と管理に関する一般的な情報については、「 自己管理型配置でユーザーとロールを管理する 」を参照してください。

すべての MongoDB mongodおよびmongosインスタンス(または Windows のmongod.exeまたはmongos.exe )には、関連付けられたサービス プリンシパルが必要です。 サービス プリンシパル名の形式は次のとおりです。

<service>/<fully qualified domain name>@<KERBEROS REALM>

MongoDB では、 <service>はデフォルトでmongodbになります。 たとえば、 m1.example.comが MongoDB サーバーで、 example.comEXAMPLE.COM Kerberos レルムを維持している場合、 m1にはサービスプリンシパル名mongodb/m1.example.com@EXAMPLE.COMが必要です。

に別の値を指定するには、<service> serviceNamemongodまたはmongos (またはmongod.exe またはmongos.exe )の起動時に使用します。mongoshまたは他のクライアントは、 serviceNameを使用して別のサービスプリンシパル名を指定することもできます。

サービスプリンシパル名は、サービスプリンシパル名の完全修飾ドメイン名(FQDN)部分を使用して、ネットワーク経由でアクセスできる必要があります。

デフォルトでは、Kerberos は DNS を使用してホストを解決する前に、 /etc/krb5.confファイルを使用してホストを識別しようとします。

Windows で MongoDB をサービスとして実行している場合は、「 MongoDB Windows サービスへのサービスプリンシパル名の割り当て 」を参照してください。

Linux システムでは、サービス プリンシパルの Kerberos 認証キーをキータブファイルに保存できます。 Linux 上で実行中の各 Kerberos 化されたmongodおよびmongosインスタンスは、サービス プリンシパルのキーを含むキータブ ファイルにアクセスできる必要があります。

キータブ ファイルを安全に保つには、 mongodまたはmongosプロセスを実行するユーザーのみにアクセスを制限する ファイル権限 を使用します。

Linux では、MongoDB クライアントは Kerberos のkinitプログラムを使用して、サーバーに対してユーザー プリンシパルを認証するための認証情報キャッシュを初期化できます。

Linux システムとは異なり、Windows で実行されているmongod } インスタンスとmongosインスタンスでは、キータブ ファイルにアクセスする必要がありません。 代わりに、 mongodインスタンスとmongosインスタンスはオペレーティング システムに固有の認証情報ストアからサーバー認証情報を読み取ります。

ただし、Windows Active Directory から、Linux システムで使用するためのキータブ ファイルをエクスポートすることはできます。 詳しくは 、 Ktpass 詳しくは、 を参照してください。

Kerberos サポートと認証用に MongoDB を構成するには、「 Linux で Kerberos 認証を使用して自己管理型 MongoDB を構成する 」および「 Windows で Kerberos 認証を使用して自己管理型 MongoDB を構成する 」を参照してください。

mongodまたはmongosインスタンスを実行する各ホストには、フォワードルックアップとリバースルックアップを提供するために、 APTRの両方の DNS レコードが必要です。

APTRの DNS レコードがないと、ホストは Kerberos ドメインまたは キーディストリビューションセンター(KDC)のコンポーネントを解決できません。

正常に認証するには、各mongod } インスタンスとmongosインスタンスのシステム時間が、Kerberos インフラストラクチャ内の他のホストのシステム時間から 5 分以内である必要があります。

次の MongoDB ドライバーは Kerberos 認証をサポートしています。

MongoDB は他の認証メカニズムとともに Kerberos 認証の使用をサポートしていますが、必要な場合にのみ他のメカニズムを追加します。 詳細については、「 Linux で Kerberos 認証を使用して自己管理型 MongoDB を構成する 」および「 Windows で Kerberos 認証を使用して自己管理型 MongoDB を構成する 」のIncorporate Additional Authentication Mechanismsセクションを参照してください。

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

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

戻る

認証