セキュリティの使い方は?
NCache キャッシュを保護し、不正アクセスを防ぐ2つの方法を提供します NCache クラスタ。設定できます キャッシュノードのセキュリティ を通して以下のようなさまざまな NCache 管理センターこれにより、このノードに接続されているクライアントは、キャッシュノードセキュリティの設定時に指定したのと同じ認証情報を使用してキャッシュにアクセスできるようになります。これを行うためにコードの変更は必要ありません。または、セキュリティを設定することもできます。 プログラムでこれは、 NCache 以下に示すように、クライアントがシステムにインストールされていません。
さらに、 NCache キャッシュユーザーがキャッシュに安全に接続できるようにする グループ管理サービスアカウント (gMSA) アイデンティティ Security 型のプロパティ SecurityOptions.
前提条件
- インストール Alachisoft.NCache.SDK アプリケーション内の NuGet パッケージ。
- アプリケーションに次の名前空間を含めます。
- Alachisoft.NCache。クライアント
- Alachisoft.NCache.Runtime.Exceptions
System.Configuration
- 追加
System.ConfigurationReferenceManagerを介したアセンブリ。 - キャッシュが実行されている必要があります。
- gMSAの要件については、以下をご覧ください。 gMSAの設定 のセクションから無料でダウンロードできます。
- APIの詳細については、以下を参照してください。 Iキャッシュ, キャッシュ接続オプション, GetCache, CacheManager, ユーザー認証情報, 資格情報を使用して作成する, CreateWithGMSA, セキュリティオプション.
セキュリティAPIを使用する
その Security のプロパティ CacheConnectionOptions このクラスでは、ユーザー名とパスワードを指定するか、パスワードなし認証にgMSAを使用するかを選択できます。次のようなヘルパーメソッドを使用できます。 資格情報を使用して作成する or CreateWithGMSA キャッシュ接続時に使用される、目的の構成を作成する。
CreateWithCredentials APIを使用して接続します
次の例は、 SecurityOptions キャッシュを初期化する際にユーザー名とパスワードを提供するAPI。
try
{
string cacheName = "demoCache";
var cacheConnectionOptions = new CacheConnectionOptions();
// If the user wants to use username/password credentials, they can set the Security property to use those credentials
cacheConnectionOptions.Security = SecurityOptions.CreateWithCredentials("your-username", "your-password");
ICache cache = CacheManager.GetCache(cacheName, cacheConnectionOptions);
}
catch (ConfigurationException ex)
{
if (ex.ErrorCode == NCacheErrorCodes.SERVER_INFO_NOT_FOUND)
{
// client.ncconf must have server information
}
}
catch (Exception ex)
{
// Any generic exception like ArgumentNullException or ArgumentException
// Argument exception occurs in case of empty string name
}
お願い
操作がフェイルセーフであることを保証するために、で説明されているように、アプリケーション内の潜在的な例外を処理することをお勧めします。 失敗の処理.
gMSA Securityを使用して接続します
次のコードサンプルは、グループ管理サービスアカウント(gMSA)資格情報を使用してパスワードなし認証を行うようにキャッシュ接続を構成する方法を示しています。 CreateWithGMSA().
string cacheName = "demoCache";
var cacheConnectionOptions = new CacheConnectionOptions();
cacheConnectionOptions.Security = SecurityOptions.CreateWithGMSA();
ICache cache = CacheManager.GetCache(cacheName, cacheConnectionOptions);
App.config を介して認証情報を使用して接続します。
以下のコードサンプルは、 アプリの構成 ファイルを作成し、それらを使用して適用します セキュリティオプション プロパティ。

// Initialize credentials
string userName = string.Empty;
string password = string.Empty;
string cacheName = "demoCache";
// Check if Username and Password are provided through App.config file
if (ConfigurationManager.AppSettings["Username"] != null)
{
userName = ConfigurationManager.AppSettings["Username"].ToString();
}
if (ConfigurationManager.AppSettings["Password"] != null)
{
password = ConfigurationManager.AppSettings["Password"].ToString();
}
// Use CacheConnectionOptions to provide credentials
var cacheConnectionOptions = new CacheConnectionOptions();
cacheConnectionOptions.Security = SecurityOptions.CreateWithCredentials(userName, password);
// Connect to cache with security credentials provided in App.config file
ICache cache = CacheManager.GetCache(cacheName, cacheConnectionOptions);
トラブルシューティング
Alachisoft.NCache.Runtime.Exceptions.SecurityException
この例外は、権限のないユーザーがキャッシュ操作を実行しようとした場合、または間違った資格情報が GetCache() or セキュリティを構成する in client.ncconf ファイルにソフトウェアを指定する必要があります。
回避方法
- APIまたはで正しいクレデンシャル情報を提供したかどうかを確認します client.ncconf。 入力ミスは、この例外の結果である可能性があります。
- 指定されたユーザーが LDAP 内の指定されたドメイン下に存在するかどうかを確認します。ログイン資格情報は、ユーザー ログインをホストし、LDAP サービスを実行しているサーバーに属している必要があります。