認証メカニズム
Overview
このガイドでは、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
を使用します。
default
デフォルトでは、サーバーがサポートする 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
重要
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
重要
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-CR
ユーザー名とパスワードを使用してユーザーを認証するチャレンジレスポンスタイプの認証メカニズムです。
重要
この認証メカニズムは MongoDB 3.6 以降、非推奨となり、MongoDB 4.0 ではサポートされなくなりました。
MONGODB-AWS
重要
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
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)