エンタープライズ認証メカニズム
Overview
このガイドでは、MongoDB Enterprise Edition でのみ使用可能な MongoDB で認証する方法を学習できます。 認証メカニズムは、ドライバーとサーバーが接続前にクライアントの ID を確認し、セキュリティを確保するためのプロセスです。
MongoDB Enterprise Edition の最新バージョンでは、次の認証メカニズムを使用できます。
別のメカニズムを使用して認証するには、 認証メカニズムの基礎ページを参照してください。 MongoDB クラスターへの接続を確立する方法の詳細については、接続ガイド を参照してください。
次のいずれかの方法を使用して、MongoDB に接続するときに認証メカニズムと認証情報を指定できます。
接続string ( 接続 URI とも呼ばれます)は、string MongoDB配置に接続する方法と接続中の動作をドライバーに指示する です。
サポートされている認証メカニズムのファクトリー メソッドで、
MongoCredential
クラスに含まれています。
GSSAPI/Kerberos による認証
ジェネリック セキュリティ サービス API(GSSAPI)認証メカニズムにより、ユーザーはユーザーのプリンシパル名を使用して Kerberos サービスで認証できます。
次の例では、次のプレースホルダーを使用して認証メカニズムを指定します。
<username>
: URL エンコード プリンシパル名(例: username%40 REALM.ME)<password>
: Kerberos ユーザーのパスワード<hostname>
: クライアントからアクセス可能な MongoDB サーバーのネットワーク アドレス
GSSAPI / Kerberos 認証メカニズムを指定するための対応する構文を確認するには、 タブまたは タブを選択します。Connection StringMongoCredential
var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>/?authMechanism=GSSAPI");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Tip
パスワードの省略
次のいずれかに当てはまる場合は、パスワードを省略できます。
Windows では、アプリケーションを実行しているプロセス所有者は、認証を必要とするユーザーと同じです。
Linux では、ユーザーは
kinit username@REALM.COM
経由でキータブを初期化しました。
additionalProperties
接続stringまたは MongoCredential
クラスのファクトリー メソッドを使用して、認証メカニズムに追加のプロパティを指定できます。
完全修飾ドメイン名
次の例は、DNS サーバーを使用してホストの完全修飾ドメイン名を検索する方法を示しています。
var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=CANONICALIZE_HOSTNAME:true");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_passwordpassword>"); credential = credential.WithMechanismProperty("CANONICALIZE_HOST_NAME", "true"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Realm
次の例は、サービスの Realm と異なる場合にユーザーの Realm を指定する方法を示しています。
var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_password>"); credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
サービス名
次の例えは、デフォルトのmongodb
でない場合にサービス名を指定する方法を示しています。
var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<service name>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_password>"); credential = credential.WithMechanismProperty("SERVICE_NAME", "<service name>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
複数のプロパティ
次の例は、複数の認証メカニズム プロパティを指定する方法を示しています。
var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<service name>,SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_password>"); credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>") .WithMechanismProperty("SERVICE_NAME", "<service name>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
LDAP による認証(PLAIN)
ディレクトリ サーバーのユーザー名とパスワードを使用して、LDAP(Lightweight Directory Access Protocol)サーバーで認証できます。
次の例では、次のプレースホルダーを使用して認証メカニズムを指定します。
<username>
: LDAP ユーザー名<password>
: LDAP パスワード<hostname>
: クライアントからアクセス可能な MongoDB サーバーのネットワーク アドレス<authenticationDb>
: ユーザーの認証を含む MongoDB database
LDAP 認証メカニズムを指定するための対応する構文を確認するには、 Connection StringタブまたはMongoCredentialタブを選択します。
var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>/?authSource=<authenticationDb>&authMechanism=PLAIN");
var credential = MongoCredential.CreatePlainCredential("<authenticationDb>", "<username>", "<password>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。