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

x を使用します。自己管理型配置でクライアントを認証するための509証明書

項目一覧

  • 前提条件
  • 手順
  • 次のステップ

次の手順では、x を設定します。スタンドアロンの mongodインスタンスでのクライアント認証の509証明書認証。これは、相互 TLS または mTLS とも呼ばれます。

x を使用する場合レプリカセットまたはシャーディングされたクラスターの509認証については、「 x を使用する 」を参照してください。自己管理型 MongoDB によるメンバーシップ認証の509証明書。

TLS/SSL、PKI(公開キー暗号基盤)証明書、特に x.509 証明書と証明機関の詳細な説明は、このドキュメントの範囲外になります。このチュートリアルでは、TLS/SSL に関する事前の知識と、有効な x.509 証明書にアクセスできることを前提としています。

実稼働環境で使用する場合、MongoDB の配置には、認証局によって生成および署名された有効な証明書を使用する必要があります。ユーザーまたは組織は、独立した認証局を作成して維持することも、サードパーティの TLS ベンダーによって生成された証明書を使用することもできます。証明書の取得と管理については、このドキュメントの範囲外です。

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

有効な x.509 証明書が必要です。クライアント x.509 証明書は、クライアント証明書の要件を満たしている必要があります。

--tlsAllowInvalidCertificatesまたはnet.tls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。

1

コマンドラインから x.509 認証用の mongod インスタンスを構成できます。

スタンドアロン mongod インスタンスを設定するには、次のコマンドを実行します。

mongod --tlsMode requireTLS \
--tlsCertificateKeyFile <path to TLS/SSL certificate and key PEM file> \
--tlsCAFile <path to root CA PEM file> --bind_ip <hostnames>

構成に必要な追加オプションを含めます。

x.509 構成には、以下が必要です。

オプション
ノート
requireTLS を指定します。
クライアントに提示するインスタンスの x.509 証明書を指定します。
インスタンスに提示された証明書を検証する認証局ファイルを指定します。

構成ファイル 内で x.509 認証用に mongod を構成できます。

スタンドアロンの mongod インスタンスを構成するには、構成ファイルに次の設定オプションを追加します。

net:
tls:
mode: requireTLS
certificateKeyFile: <path to TLS/SSL certificate and key PEM file>
CAFile: <path to root CA PEM file>

構成に必要な追加オプションを含めます。

x.509 構成には、以下が必要です。

オプション
ノート
requireTLS を指定します。
クライアントに提示するインスタンスの x.509 証明書を指定します。
インスタンスに提示された証明書を検証する認証局ファイルを指定します。

x を設定します。レプリカセットまたはシャーディングされたクラスターの509認証については、「 x を使用する 」を参照してください。自己管理型 MongoDB によるメンバーシップ認証の509証明書。

2

クライアント証明書を使用して認証するには、まず MongoDB ユーザーとしてクライアント証明書から subject の値を $external データベースに追加する必要があります。各一意の x.509 クライアント証明書は、単一の MongoDB ユーザーに対応します。1 つのクライアント証明書を使用して複数の MongoDB ユーザーを認証することはできません。

注意

ユーザー名の要件

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

  • string の RDNsubject RFC と互換性がある必要があります 標準。2253

  1. 次のコマンドを使用して、クライアント証明書から RFC2253 形式の subject を検索できます。

    openssl x509 -in <pathToClientPEM> -inform PEM -subject -nameopt RFC2253

    このコマンドは、subject 文字列と証明書を返します。

    subject= CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry
    -----BEGIN CERTIFICATE-----
    # ...
    -----END CERTIFICATE-----
  2. ユーザーとしての subject の対応値である RFC2253 を追加します。必要に応じてスペースを省略します。

    次の例では、ユーザーを追加し、そのユーザーに test データベース内での readWrite ロールと userAdminAnyDatabase ロールを付与します。

    db.getSiblingDB("$external").runCommand(
    {
    createUser: "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry",
    roles: [
    { role: "readWrite", db: "test" },
    { role: "userAdminAnyDatabase", db: "admin" }
    ],
    writeConcern: { w: "majority" , wtimeout: 5000 }
    }
    )

    ロールを有するユーザーを追加する方法の詳細については、「 自己管理型配置でのユーザーとロールの管理」を参照してください。

3

x. 509 クライアント証明書対象者に対応する MongoDB ユーザーとして追加したら、クライアント証明書を使用して認証できます。

接続中に認証するには、次のコマンドを実行します。

mongosh --tls --tlsCertificateKeyFile <path to client PEM file> \
--tlsCAFile <path to root CA PEM file> \
--authenticationDatabase '$external' \
--authenticationMechanism MONGODB-X509
オプション
ノート
クライアントの x.509 ファイルを指定します。
mongod インスタンスによって提示された証明書を検証するための認証局ファイルを指定します。
'$external' を指定します。
MONGODB-X509 を指定します。

認証なしで接続し、接続後に db.auth() メソッドを使用して認証することができます。

例えば、mongosh を使用する場合、

  1. mongoshmongod に接続します。

    mongosh --tls --tlsCertificateKeyFile <path to client PEM file> \
    --tlsCAFile <path to root CA PEM file>
    オプション
    ノート
    クライアントの x.509 ファイルを指定します。
    mongod または mongos インスタンスによって提示された証明書を検証するための証明局ファイルを指定します。
  2. 認証するには、$external データベースの db.auth() メソッドを使用します。mechanism フィールドには、 "MONGODB-X509" を指定します。

    db.getSiblingDB("$external").auth(
    {
    mechanism: "MONGODB-X509"
    }
    )

x を使用する場合レプリカセットまたはシャーディングされたクラスターの509認証については、「 x を使用する 」を参照してください。自己管理型 MongoDB によるメンバーシップ認証の509証明書。

戻る

x.509