Siebel アダプターでの安全なプログラミング
アダプター サービスの追加リファレンス Visual Studio プラグインを使用する場合に資格情報を保護する方法
アダプター サービス参照の追加プラグインを使用して WCF クライアントを作成する場合は、Siebel システムのユーザー名とパスワードを指定する必要があります。 これは、[アダプターの構成] ダイアログ ボックスの [セキュリティ] タブからのみ行う必要があります。 [Uri] フィールドに直接ではなく、[セキュリティ] タブから Siebel 資格情報を入力することで、次のことを確認できます。
資格情報は、[アダプター サービス参照プラグインの追加] ダイアログ ボックスの [Uri ] フィールドには表示されません。このダイアログ ボックスでは、コンピューター画面にアクセスできるすべてのユーザーが資格情報を読み取ることができます。
資格情報は、アダプター サービス参照プラグインの追加によって生成される構成ファイルには表示されません。
アダプター サービス参照プラグインを使用して WCF クライアントを生成する方法 (Siebel システムのユーザー名とパスワードを入力する方法など) の詳細については、「 Visual Studio で Siebel 操作のメタデータを取得する」を参照してください。
コードで資格情報を設定するためのベスト プラクティスとは
WCF には ClientCredentials クラスが用意されており 、 ChannelFactory などのクライアント通信オブジェクトがサービスで自身を認証するために使用する資格情報を構成するのに役立ちます。 ClientCredentials クラスを使用すると、WCF がそのオブジェクトのチャネル スタックで指定されている認証メカニズムを受け取り、クライアントとサービス間の交換に適用されるようにします。
Siebel アダプターは使用中のアプリケーションでインプロセスでホストされるため、 ClientCredentials クラスを使用して、使用するアプリケーションが使用するクライアント通信オブジェクトに資格情報を設定することは必須ではありません。 ただし、これを行うことをお勧めします。
Siebel アダプターでは、AcceptCredentialsInUri バインディング プロパティを使用して ClientCredentials クラスを使用することをお勧めします。 このプロパティは、アダプターが接続 URI で Siebel システムのユーザー名とパスワードを受け入れるかどうかを指定します。 AcceptCredentialsInUri の既定値は false です。つまり、接続 URI に資格情報が含まれている場合、アダプターは例外をスローします。 AcceptCredentialsInUri を true に設定して、接続 URI に資格情報を指定できます。 実際には、特定のケースでこれを行う必要があります。たとえば、ServiceModel メタデータ ユーティリティ ツール (svcutil.exe) を使用して、Siebel システム成果物の WCF クライアント クラスを生成する場合です。
次の例は、 Credentials クラスを使用して 、ChannelFactory 上の Siebel システムの資格情報を設定する方法を示しています。
// Create binding and endpoint
SiebelBinding binding = new SiebelBinding();
EndpointAddress endpointAddress = new EndpointAddress("siebel://Siebel_server:1234?SiebelObjectManager=obj_mgr&SiebelEnterpriseServer=entserver&Language=enu ");
// Create the channel factory
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, endpointAddress))
// Set user name and password
factory.Credentials.UserName.UserName = "YourUserName";
factory.Credentials.UserName.Password = "YourPassword";
// Open the channel factory
factory.Open();
次の例は、 ClientCredentials クラスを使用して、WCF クライアント上の Siebel システムの資格情報を設定する方法を示しています。
// Initialize a new client for the SQLEXECUTE operation from configuration
BusinessObjects_Account_Account_OperationClient accountAccountClient = new BusinessObjects_Account_Account_OperationClient ("SiebelBinding_BusinessObjects_Account_Account_Operation");
// Set user name and password
accountAccountClient.ClientCredentials.UserName.UserName = "YourUserName";
accountAccountClient.ClientCredentials.UserName.Password = "YourPassword";
// Open the client
accountAccountClient.Open();
プロセス境界を越えてより安全なデータ交換を提供するにはどうすればよいですか?
Siebel アダプターは、それを使用するアプリケーションまたはサービスを使用してインプロセスでホストされます。 アダプターはコンシューマーと一緒にインプロセスでホストされるため、コンシューマーと Siebel アダプターの間で交換されるメッセージに対してセキュリティを提供する必要はありません。 ただし、使用しているアプリケーションまたはサービスが、プロセス境界を越えて機密性の高いデータベース情報を含むメッセージを別のサービスまたはクライアントに送信する場合は、環境内でこのデータを適切に保護するための対策を講じます。 Windows Communication Foundation (WCF) には、クライアントとサービスの間で送信されるメッセージをセキュリティで保護するための多くのオプションが用意されています。 WCF のクライアントとサービスの間で送信されるメッセージをセキュリティで保護する方法の詳細については、「 サービスとクライアントのセキュリティ保護」を参照してください。 WCF で提供されるセキュリティ機能の詳細については、「 Windows Communication Foundation のセキュリティ」を参照してください。
参照
Siebel アプリケーションをセキュリティで保護する
Siebel アダプターをセキュリティで保護するためのベスト プラクティス