Programación segura con el adaptador de Siebel
¿Cómo se protegen las credenciales al usar el complemento Agregar referencia del servicio adaptador de Visual Studio?
Cuando use el complemento Agregar referencia de servicio de adaptador para crear un cliente WCF, debe proporcionar un nombre de usuario y una contraseña para el sistema Siebel. Solo debe hacerlo desde la pestaña Seguridad del cuadro de diálogo Configurar adaptador . Al escribir las credenciales de Siebel en la pestaña Seguridad en lugar de directamente en el campo URI , asegúrese de lo siguiente:
Las credenciales no se mostrarán en el campo URI del cuadro de diálogo Add Adapter Service Reference Plug-in (Agregar complemento de referencia del servicio adaptador), donde cualquier persona con acceso a la pantalla del equipo puede leerlas.
Las credenciales no aparecerán en el archivo de configuración que genera el complemento Agregar referencia del servicio adaptador.
Para obtener más información sobre cómo generar un cliente WCF mediante el complemento Agregar referencia del servicio adaptador, incluido cómo escribir un nombre de usuario y una contraseña para el sistema Siebel, vea Obtener metadatos para las operaciones de Siebel en Visual Studio.
¿Qué son los procedimientos recomendados para establecer credenciales en el código?
WCF proporciona la clase ClientCredentials para ayudarle a configurar las credenciales que un objeto de comunicación de cliente, como ChannelFactory, usa para autenticarse con un servicio. Mediante el uso de la clase ClientCredentials , asegúrese de que WCF toma los mecanismos de autenticación especificados en la pila de canales de ese objeto y los aplica al intercambio entre el cliente y el servicio.
Dado que el adaptador de Siebel se hospeda en proceso con su aplicación de consumo, no es imperativo usar la clase ClientCredentials para establecer credenciales en los objetos de comunicación de cliente que usa la aplicación de consumo. Sin embargo, se considera una buena práctica hacerlo.
El adaptador de Siebel fomenta el uso de la clase ClientCredentials a través de la propiedad de enlace AcceptCredentialsInUri . Esta propiedad especifica si el adaptador aceptará el nombre de usuario y la contraseña del sistema Siebel en el URI de conexión. AcceptCredentialsInUri tiene como valor predeterminado false, lo que significa que el adaptador producirá una excepción si el URI de conexión contiene credenciales. Puede establecer AcceptCredentialsInUri en true para proporcionar credenciales en el URI de conexión. De hecho, debe hacer esto en determinados casos; por ejemplo, cuando se usa la Herramienta de utilidad de metadatos de ServiceModel (svcutil.exe) para generar una clase de cliente WCF para artefactos del sistema Siebel.
En el ejemplo siguiente se muestra cómo usar la clase Credentials para establecer credenciales para el sistema Siebel en un ChannelFactory.
// 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();
En el ejemplo siguiente se muestra cómo usar la clase ClientCredentials para establecer credenciales para el sistema Siebel en un cliente WCF.
// 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();
¿Cómo puedo proporcionar un intercambio de datos más seguro a través de los límites del proceso?
El adaptador de Siebel se hospeda en proceso con la aplicación o el servicio que lo consume. Dado que el adaptador está hospedado en proceso con el consumidor, no es necesario proporcionar seguridad en los mensajes intercambiados entre el consumidor y el adaptador de Siebel. Sin embargo, si la aplicación o el servicio que consume envía mensajes que contienen información confidencial de la base de datos a través de un límite de proceso a otro servicio o cliente, debe tomar medidas para proporcionar una protección adecuada para estos datos en su entorno. Windows Communication Foundation (WCF) proporciona muchas opciones para ayudar a proteger los mensajes enviados entre clientes y servicios. Para obtener más información sobre cómo ayudar a proteger los mensajes enviados entre clientes y servicios en WCF, consulte Protección de servicios y clientes. Para obtener más información general sobre las características de seguridad que proporciona WCF, consulte Seguridad de Windows Communication Foundation.
Consulte también
Proteger las aplicaciones de Siebel
Procedimientos recomendados para proteger el adaptador de Siebel