Kerberos (GSSAPI)
Overview
ジェネリック セキュリティ サービスAPI (GSSAPI)認証メカニズムを使用すると、プリンシパル名を使用して Kerberos サービスに認証できます。このメカニズムはMongoDB Enterprise Advancedに認証する場合にしか使用できません。
コード プレースホルダー
このページのコード例では、次のプレースホルダーを使用します。
<username>
: URLエンコードされた プリンシパル名。例:"username%40REALM.ME"
<password>
: Kerberos ユーザーのパスワード。<hostname>
: MongoDBデプロイのネットワーク アドレス。<port>
: MongoDBデプロイのポート番号。このパラメーターを省略すると、ドライバーはデフォルトのポート番号(27017
)を使用します。
このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。
アプリケーションでの GSSAPI 認証の使用
GSSAPI
認証メカニズムを指定し、Kerberos 認証情報を提供するには、MongoCredential
オブジェクトを使用するか、接続文字列の一部として使用します。対応する構文を確認するには、 Connection String タブまたは MongoCredentialタブを選択します。
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?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
次の GSSAPI 構成オプションは、接続文字列または MongoCredential
オブジェクトのいずれかに含めることができます。
完全修飾ドメイン名
次の例は、DNS サーバーを使用してホストの完全修飾ドメイン名を検索する方法を示しています。
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=CANONICALIZE_HOSTNAME:true");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); credential = credential.WithMechanismProperty("CANONICALIZE_HOST_NAME", "true"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Realm
次の例では、サービスの邦土と異なる場合にユーザーの邦土を指定する方法を示しています。 <user's realm>
プレースホルダーを Kerberos ユーザーの邦土に置き換えます。
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
サービス名
次の例では、デフォルトの mongodb
でない場合にサービス名を指定する方法を示しています。 <service name>
プレースホルダーをサービス名に置き換えます。
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=SERVICE_NAME:<service name>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<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://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=SERVICE_NAME:<service name>,SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<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);
API ドキュメント
このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。