Docs Menu
Docs Home
/ / /
Go
/

認証メカニズム

項目一覧

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

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

GSSAPI/KerberosまたはLDAPを使用して認証するには、 エンタープライズ認証メカニズムの基礎ページを参照してください。 MongoDB クラスターへの接続を確立する方法の詳細については、「接続ガイド 」を参照してください。

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

  • SCRAM-SHA-256

  • SCRAM-SHA-1

  • MONGODB-CR

  • MongoDB-AWS

  • x.509

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

次のセクションでは、MongoDB コミュニティ エディション がサポートする 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)

戻る

Context