Docs Menu

Docs HomeGo

認証メカニズム

項目一覧

  • Overview
  • サポートされているメカニズム
  • 規則の例
  • default
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-CR
  • MONGODB-AWS
  • X.509

このガイドでは、MongoDB コミュニティ エディション で利用可能な各認証メカニズムの使用方法を説明します。MongoDB は認証メカニズムを使用して ID を確認し、信頼を確立して、接続前にドライバーとサーバーのセキュリティを確保します。

認証メカニズムなしで MongoDB クラスターへの接続を確立する場合は、「接続ガイド 」を参照してください。

Go Driver は次の認証メカニズムをサポートしています。

Go Driver は、 クライアント を介して認証メカニズムへの接続を確立します 型。Clientタイプは、 認証情報 の接続オプションとして使用するメカニズムと認証情報を指定します タイプ 。これらのオプションを構成するには、Credential SetAuth() に タイプを渡します。 ClientOptions のメソッド 型。

次のセクションでは、MongoDB Community Edition がサポートする 5 つのメカニズムを使用してこのプロセスを示します。

各認証メカニズムには、次のプレースホルダーが含まれています。

  • username - MongoDB のユーザー名

  • password - MongoDB ユーザーのパスワード

  • hostname - クライアントからアクセス可能な MongoDB Server のネットワーク アドレス

  • port - MongoDB Server のポート番号

  • authenticationDb - ユーザーの認証データを含む MongoDB database。このオプションを省略すると、ドライバーはデフォルト値の admin を使用します。

デフォルトでは、サーバーがサポートする MongoDB のバージョンに応じて、次のいずれかの認証メカニズムが使用されます。

メカニズム
バージョン
SCRAM-SHA-256
MongoDB 4.0 以降
SCRAM-SHA-1
MongoDB 3.0、3.2、3.4、3.6
MONGODB-CR
MongoDB 2.6 以前

デフォルトの認証メカニズムを指定するには、AuthMechanism オプションを省略します。

credential := options.Credential{
AuthSource: "<authenticationDb>",
Username: "<username>",
Password: "<password>",
}
clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>").
SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

MongoDB がサポートするチャレンジ レスポンス(CR)および Salted Challenge Response 認証メカニズム(SCRAM)の詳細については、サーバー マニュアルの「SCRAM」セクションを参照してください。

重要

SCRAM-SHA-256 は、MongoDB 4.0 以降の MongoDB のデフォルトの認証方法です。

SCRAM-SHA-256 は、 SHA-256アルゴリズムで暗号化されたユーザー名とパスワードを使用してユーザーを認証する、Salted Challenge Response 認証メカニズム(SCRAM)です。

SCRAM-SHA-256 認証メカニズムを指定するには、AuthMechanism オプションに "SCRAM-SHA-256" という値を割り当てます。

credential := options.Credential{
AuthMechanism: "SCRAM-SHA-256",
AuthSource: "<authenticationDb>",
Username: "<username>",
Password: "<password>",
}
clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>").
SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

重要

SCRAM-SHA-1 は、MongoDB バージョン 3.0、3.2、3.4、および 3.6 のデフォルトの認証方法です。

SCRAM-SHA-1 は、 SHA-1アルゴリズムで暗号化されたユーザー名とパスワードを使用してユーザーを認証する、Salted Challenge Response Authentication Mechanism(SCRAM)です。

SCRAM-SHA-1 認証メカニズムを指定するには、AuthMechanism オプションに "SCRAM-SHA-1" という値を割り当てます。

credential := options.Credential{
AuthMechanism: "SCRAM-SHA-1",
AuthSource: "<authenticationDb>",
Username: "<username>",
Password: "<password>",
}
clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>").
SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

MONGODB-CR ユーザー名とパスワードを使用してユーザーを認証するチャレンジレスポンスタイプの認証メカニズムです。

重要

この認証メカニズムは MongoDB 3.6 以降、非推奨となり、MongoDB 4.0 ではサポートされなくなりました。

重要

MONGODB-AWS 認証メカニズムは、MongoDB バージョン4.4以降でのみ使用できます。

MONGODB-AWS 認証メカニズムは、Amazon Web Services Identity and Access Management(AWS IAM)認証情報を使用してユーザーを認証します。

MONGODB-AWS 認証メカニズムを指定するには、次の手順を実行します。

  • AuthMechanism オプションに MONGODB-AWS という値を割り当てます

  • Username オプションに accessKeyID の値を割り当てます

  • Password オプションに secretAccessKey の値を割り当てます

var accessKeyID, secretAccessKey string
awsCredential := options.Credential{
AuthMechanism: "MONGODB-AWS",
AuthSource: "<authenticationDb>",
Username: "<accessKeyID>",
Password: "<secretAccessKey>",
}
awsIAMClient, err := mongo.Connect(
context.TODO(),
options.Client().SetAuth(awsCredential))
if err != nil {
panic(err)
}
_ = awsIAMClient

Amazon Web Servicesセッショントークンを指定する必要がある場合は、 assume ロール リクエスト から返された一時的な認証情報を使用します。

一時的な認証情報を使用するには、 AuthMechanismPropertiesオプションにsessionTokenの値を割り当てます。

var sessionToken string
assumeRoleCredential := options.Credential{
AuthMechanism: "MONGODB-AWS",
AuthSource: "<authenticationDb>",
Username: "<accessKeyID>",
Password: "<secretAccessKey>",
AuthMechanismProperties: map[string]string{
"AWS_SESSION_TOKEN": "<sessionToken>",
},
}
assumeRoleClient, err := mongo.Connect(context.TODO(),
options.Client().SetAuth(assumeRoleCredential))

X.509認証メカニズムは TLS を使用する X.509 証明書と併用して、クライアント証明書の相対的識別名(RDN)によって識別されるユーザーを認証できます。X.509認証メカニズムを指定すると、サーバーは次のファイルのパスを使用して接続を認証します。

  • tlsCAFile 。TLS 接続時に、信頼する単一の証明書機関または複数の証明書機関のバンドルのいずれかを含みます。

  • tlsCertificateKeyFile 。クライアント証明書ファイルまたはクライアント秘密キー ファイルへのパスを参照します。

X.509 認証メカニズムを指定するには、次の手順を実行します。

  • tlsCAFile に接続文字列内のファイルへのパスを割り当てます。

  • tlsCertificateKeyFile に接続文字列内のファイルへのパスを割り当てます。

  • AuthMechanism オプションに "MONGODB-X509" という値を割り当てます

caFilePath := "<cafile_path>"
certificateKeyFilePath := "<client_certificate_path>"
uri := "mongodb://<hostname>:<port>/?tlsCAFile=%s&tlsCertificateKeyFile=%s"
uri = fmt.Sprintf(uri, caFilePath, certificateKeyFilePath)
credential := options.Credential{
AuthMechanism: "MONGODB-X509",
}
clientOpts := options.Client().ApplyURI(uri).SetAuth(credential)
←  ContextBSON との連携 →
フィードバックを送る
© 2022 MongoDB, Inc.

会社概要

© 2022 MongoDB, Inc.